我目前正在为框架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(但它是一个参数:/),并且在返回行上预期有一个标识符。
答案 0 :(得分:7)
我注意到 两件事至少 :
new array
一样创建数组实例。 var
关键字为deprecated。 (你使用它错了)所以你的代码:
var $formHelper = new FormHelper;
var $fields = new array;
应该成为:
$formHelper = new FormHelper;
$fields = array();
答案 1 :(得分: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 ( )
}
}
答案 2 :(得分: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) {
我认为$这是表格......如果不使用$formHelper->getData();