如何從 PHP 中的靜態方法呼叫取得擴充類別的類別名稱?

Linda Hamilton
發布: 2024-10-31 21:29:29
原創
931 人瀏覽過

How to Get the Classname of an Extended Class from a Static Method Call in PHP?

從擴展PHP 類別中的靜態呼叫檢索類別名稱

PHP 中的擴充類別允許建立繼承屬性的子類別及其父類別的方法。但是,父類別中的靜態方法無法直接存取擴充類別的類別名稱。

問題:

呼叫靜態方法時取得擴充類別的類別名稱來自該類別。

例如:

<code class="php">class Action {
    function n() {/* something */}
}

class MyAction extends Action {/* some methods here */}</code>
登入後複製

呼叫 MyAction::n() 應傳回「MyAction」。但是,Action 類別中的 __CLASS__ 僅傳回「Action」。

最新靜態綁定 (PHP 5.3 ):

自 PHP 5.3 起,最新靜態綁定可以解析目標用於在運行時調用靜態方法的類別。使用get_used_class() 擷取類別名稱:

<code class="php">class Action {
    public static function n() {
        return get_called_class();
    }
}

class MyAction extends Action {

}

echo MyAction::n(); //displays MyAction</code>
登入後複製

或:

如果靜態方法不是靜態的,請在方法中使用get_class($this)取得類別名。

以上是如何從 PHP 中的靜態方法呼叫取得擴充類別的類別名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!