拡張 PHP クラスの静的呼び出しからクラス名を取得する
問題:
PHPクラス階層が存在し、基本クラス Action と拡張クラス MyAction があります。 Action クラスの静的メソッド n() は、そのクラス名を返します。ただし、拡張クラス MyAction からメソッドを呼び出すと、「Action」が返されます。
質問:
クラス名から正しいクラス名を取得することは可能ですか?拡張クラスの静的呼び出しですか?
答え:
オプション 1: 非静的メソッド
メソッドが非静的になるように変更し、代わりに $this キーワードを使用すると、get_class($this) 関数を使用して拡張クラスのクラス名を取得できます。
オプション 2: 遅延静的バインディング ( PHP 5.3 )
最新の静的バインディングでは、静的メソッド呼び出しのランタイム ターゲット クラスを解決する get_called_class() 関数が導入されています。これにより、メソッド内でクラス名を直接取得できるようになります。
以上が拡張 PHP クラスの静的メソッド呼び出しから正しいクラス名を取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。