簡體   English   中英

的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM