「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 拡張されたPHPクラスの静的メソッド呼び出しからクラス名を取得する方法は?

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

2025-03-22に投稿されました
ブラウズ:793

How to retrieve the class name from a static method call in extended PHP classes?

拡張PHPクラスの静的コールからクラス名を取得します

PHPの世界では、特に拡張クラスと連携する場合、静的関数呼び出しからクラス名を決定する必要があります。次のシナリオを考えてみましょう:

class Action {
    function n() {/* some implementation */}
}

class MyAction extends Action {/* further implementation */}
この状況では、myaction :: n()を呼び出します。クラス名として「myaction」を返す必要があります。ただし、__class__変数は、親クラス名( "action")のみを返します。この機能により、get_called_class()functionを使用して呼び出されたクラスを決定することができます:

{ public static function n(){ return get_called_class(); } } クラスmyactionはアクションを拡張します{ } エコーmyaction :: n(); // output:myaction

代替アプローチ(php 5.3):

class Action {
    public static function n() {
        return get_called_class();
    }
}

class MyAction extends Action {

}

echo MyAction::n(); // Output: MyAction
覚えておいてください、このアプローチは、get_class()関数がクラスのインスタンスを引数として取得するため、非静的な方法でのみ機能します。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3