PHP:简单的代码验证失败


Php: simple code validation failure

我目前正在为框架Symfony2中的实体开发一个简单的php函数。该函数不断生成错误,尽管我看不出出了什么问题。这是代码:

public function getForm(array $reqFields){
    var $formHelper = new FormHelper;
    var $fields = new array;
    if($reqFields == null){
        foreach ($this->getArray() as $k => $v) {
            array_push($fields, $formHelper->getTextField($v, $k));
        }
    }
    return $formHelper->getForm($fields);
}
我已经

导入了FormHelper,并且其中的函数存在,就此而言。当我执行它时,我收到以下错误:

Parse error: syntax error, unexpected T_VAR

怎么了?

编辑:Netbeans 告诉我应该初始化$reqFields(但它是一个参数 :/),并且返回行上应该有一个标识符。

至少注意到两件事

  • 数组不是对象。不能像创建数组实例那样创建数组实例 new array
  • var 关键字从 PHP 5.3 开始被弃用。(而且你用错了)

所以你的代码:

var $formHelper = new FormHelper;
var $fields = new array;

应该变成:

$formHelper = new FormHelper;
$fields = array();

数组不是对象!
原来如此:

var $fields = array();

并且您必须在类标头中定义类变量,而不是在函数中定义类变量。所以你也应该擦掉前面的var

喜欢这个:

class Foo
{
   public $fields = array(); // var equals public (you should use public, because var is deprecated)
   public function bar()
   {
      print_r($this->fields); // => Array ( )
   }
}
public function getForm(array $reqFields){

在 PHP 中,您不声明参数类型,因此您应该将其转换为

public function getForm($reqFields){

public function getForm($reqFields = array()){

如果您希望参数是可选的也

$formHelper = new FormHelper();

$fields = array();

foreach ($this->getArray() as $k => $v) {

我假设$this是形式...如果不使用$formHelper->getData();