首頁  >  文章  >  後端開發  >  如何在 PHP 中將匿名函數指派給類別屬性?

如何在 PHP 中將匿名函數指派給類別屬性?

Susan Sarandon
Susan Sarandon原創
2024-10-26 13:25:02632瀏覽

How to Assign Anonymous Functions to Class Properties in PHP?

在PHP 中將匿名函數指派給類別屬性

在PHP 中,無法直接將類別屬性初始化為匿名函數:宣告它。下面的程式碼片段:

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

產生錯誤訊息「解析錯誤:語法錯誤,意外的 T_FUNCTION。」這是因為 PHP 語言不允許在宣告階段用函數初始化屬性。

常數初始化限制

根據 PHP 手冊,類別屬性只能在宣告期間以常數值初始化。常數值是可以在編譯時計算而不依賴執行時資訊的值。但是,函數不符合此標準,因此在聲明期間不允許作為屬性初始值設定項。

使用建構函式的解法

儘管無法使用匿名函式初始化屬性在宣告期間,可以將函式指派給建構函式方法中的屬性。將前面的程式碼修改為以下內容可以進行賦值:

<code class="php">class AssignAnonFunctionInConstructor {
    private $someFunc;

    public function __construct() {
        $this->someFunc = function() {
            echo "Does Work";
        };
    }
}</code>

在建立物件時呼叫建構函式方法,從而允許在執行時將匿名函式指派給屬性。

以上是如何在 PHP 中將匿名函數指派給類別屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn