语法错误,意外'(',期待')'
我正在使用Laravel 4开发一个站点。我在我的一个模型中使用了这段代码:
class MyModel extends Eloquent {
protected $var = array(
"label" => Lang::get("messages.label"),
"code" => "myCode",
);
...
}
但是我在使用Lang::get
的行上给出了这个语法错误:
syntax error, unexpected '(', expecting ')'
然后我改变了我的代码:
class MyModel extends Eloquent {
protected $var;
public function __construct() {
$this->var = array(
"label" => Lang::get("messages.label"),
"code" => "myCode",
);
}
}
错误消失了! 我认为这个错误是非常混乱和无益的。 为什么PHP显示此错误消息?
这是因为您在定义类属性时使用Lang::get()
,这是不允许的。 调用像静态方法的东西只能在运行时(代码执行时)完成。
在定义类时,它们的属性只能是非变量(或“常量”)值(例如整数,字符串或数组本身只包含非变量值)。
运行时代码应该放入构造函数中。
这个问题是因为你在调用Lang :: get的时候调用了这个函数,当初始化你的class属性时,这个函数的默认值只能是常量值。
您正确地在构造函数中初始化这些属性。
链接地址: http://www.djcxy.com/p/9963.html