关于symfony:Php:简单的代码验证失败

Php: simple code validation failure

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

1
2
3
4
5
6
7
8
9
10
11
12
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,其中的功能就此存在。 当我执行它时,我收到以下错误:

1
Parse error: syntax error, unexpected T_VAR

有什么问题?

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


我至少注意到两件事:

  • 数组不是对象。 您不能像使用new array那样创建数组实例。
  • 从PHP 5.3开始,不推荐使用var关键字。 (而你使用它错了)

所以你的代码:

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

应该成为:

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


数组不是对象!
所以它是:

1
var $fields = array();

而且你必须在类头中定义不在函数中的类变量。 所以你也应该擦除前面的var

像这样:

1
2
3
4
5
6
7
8
9
class Foo
{
   public $fields = array(); // var equals public (you should use public, because var is deprecated)

   public function bar()
   {
      print_r($this->fields); // => Array ( )
   }
}


1
public function getForm(array $reqFields){

在PHP中你没有声明参数类型,所以你应该转换它

1
public function getForm($reqFields){

要么

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

如果你想让参数是可选的

1
$formHelper = new FormHelper();

1
$fields = array();

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

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