首頁 > 後端開發 > php教程 > 為什麼不能在宣告時將 PHP 類別屬性初始化為函數?

為什麼不能在宣告時將 PHP 類別屬性初始化為函數?

Mary-Kate Olsen
發布: 2024-10-25 17:26:44
原創
697 人瀏覽過

Why can't you initialize a PHP class property to a function at declaration time?

為什麼不能將 PHP 屬性初始化為函數?

嘗試在宣告期間將PHP 類別屬性初始化為函數時,出現「解析錯誤」: 語法錯誤,意外的T_FUNCTION" 錯誤可能會出現。

<code class="php">class AssignAnonFunction {
    private $someFunc = function() {
        echo "Will Not work";
    };
}</code>
登入後複製

出現這種情況是因為PHP 不允許使用非常量值(例如函數)初始化屬性。宣告...這個初始化必須是常數值...它必須是能夠在編譯時求值,且不得依賴執行時間資訊來求值。 ”

因此,函數不能在聲明時分配給屬性。

但是,可以使用__construct() 方法透過函數初始化屬性:

這是可能的,因為__construct() 方法是在運行時呼叫的,允許分配動態值,包括函數。

以上是為什麼不能在宣告時將 PHP 類別屬性初始化為函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板