我想从表单中获取输入并将其保存到php数组并打印数组。有两个文件,即array.php和marks.php。我想我正在搞乱static.please帮助我!
marks.php
<style type="text/css">
.my_table{
margin-top:150px;
margin-left:400px;
}
</style>
<?php
if(!isset($_POST['send'])){
?>
<table align='center' class='my_table'>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<tr><th></th><th align='left'>Student Marks</th></tr>
<tr><td>enter subject</td><td><input type='text' name='subject'></td></tr>
<tr><td>enter marks</td><td><input type='text' name='marks'></td></tr>
<tr><td colspan='2' align='right'><input type='submit' value='submit' name='send'/> </td></tr>
</form>
</table>
<?php
}
else{
include 'array.php';
$svtoarray=new SaveMarks();
$svtoarray->addToArray($_POST['marks']);
$svtoarray->printArray();
}
?>
array.php
<?php
class SaveMarks{
static $index=0;
function SaveMarks(){
}
static $marks=array();
function addToArray($value){
$marks[$index]=$value;
$index++;
}
function printArray(){
$countarr=count($marks);
for($ind=0;$ind<$countarr;$ind++){
print $marks[ind];
}
}
}
?>
答案 0 :(得分:0)
声明类成员(方法或属性)意味着可以直接从类定义访问该值,而不必实例化该值。相反,无法从实例化访问静态成员。 即 因为你宣称索引和标记为静态
SaveMarks :: $ index或SaveMarks :: $ marks可以
但 $ svtoarray = new SaveMarks(); $ svtoarray-&gt; index和$ svttoarray-&gt;标记不合适
请参阅PHP manual for static keyword
而不是“静态”,您应该将它们声明为“公共”,以便可以从实例化对象访问。 更“纯粹”的实现是将标记声明为私有并定义公共“setMarks”方法,而不是允许直接修改属性。
答案 1 :(得分:0)
$array = $_POST;
看起来如何?