0

我目前正在为框架 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 应该被初始化(但它是一个参数:/),并且返回行上应该有一个标识符。

4

3 回答 3

7

我至少注意到两件事:

  • 数组不是对象。您不能像使用new array.
  • 自 PHP 5.3 起,该var关键字已弃用。(而且你用错了)

所以你的代码:

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

应该变成:

$formHelper = new FormHelper;
$fields = array();
于 2012-06-15T09:24:21.860 回答
3

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

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 ( )
   }
}
于 2012-06-15T09:21:57.087 回答
1
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();

于 2012-06-15T09:29:23.307 回答