![](/img/trans.png)
[英]Parse error: syntax error, unexpected '[', expecting ')' php
[英]php - syntax error, unexpected '(', expecting ')'
我正在使用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函數,而類屬性的默認值只能是常量值。
您正確地在構造函數中初始化這些屬性是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.