我正在使用 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()
,这是不允许的。调用静态方法之类的东西只能在 runtime 处完成。 (当代码正在执行时)。
当您定义类时,它们的属性只能是非变量(或“常量”)值(例如本身仅包含非变量值的整数、字符串或数组)。
运行时代码应放入构造函数中。
关于php - 语法错误,意外 '(' ,期望 ')',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319674/