0

我想从表单中获取输入并将其保存到php数组并打印数组。有两个文件,即array.php和marks.php。我想我搞砸了静态。请帮帮我!

标记.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();
    }
?>

数组.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];
        }
    }
}

?>
4

2 回答 2

0
$array = $_POST;

看起来怎么样?

于 2013-08-31T19:24:51.347 回答
0

声明类成员(方法或属性)意味着可以直接从类定义中访问该值,而不必实例化。相反,不能从实例化访问静态成员。即因为您将索引和标记声明为静态

SaveMarks::$index 或 SaveMarks::$marks 没问题

但是 $svtoarray=new SaveMarks(); $svtoarray->index 和 $svttoarray->marks 不行

有关静态关键字,请参见PHP 手册

而不是“静态”,您应该将它们声明为“公共”,以便可以从实例化对象访问。更“纯粹”的实现是将标记声明为私有并定义公共“setMarks”方法,而不是允许直接修改属性。

于 2013-08-31T16:49:09.847 回答