ホームページ > バックエンド開発 > PHPチュートリアル > PHP の静的メソッド呼び出しから拡張クラスのクラス名を取得する方法

PHP の静的メソッド呼び出しから拡張クラスのクラス名を取得する方法

Linda Hamilton
リリース: 2024-10-31 21:29:29
オリジナル
1015 人が閲覧しました

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_called_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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート