PHP:静的メソッドで継承するクラスの名前を取得
-
21-09-2019 - |
質問
さて、記事のタイトルが混乱少しかもしれません。
私はこのコードを持っています:
class A {
public static foo() {
return get_called_class();
}
}
class B extends A {
}
class C {
public function bar() {
echo B::foo();
}
}
出力:C
私は(FOOで取得したいのか)B.方法のクラス名である私は?クラスBの変化なしにこれを行うことができます。
よろしく、 ヤンオリバー
PS:__ __ CLASS、get_class()が動作していません。
。解決
PHP 5.3の前に、これはハックなしでは不可能であると後期静的結合、googleable用語として知られています。
あなたは、ここでの答えとSOの記事興味を持っている場合:<のhref =「https://stackoverflow.com/questions/890505/faking-late-static-binding-before-php-5-3」 >偽造後期静的PHP 5.3の前にバインドする
他のヒント
私はあなたがビルトインの リフレクションクラスを使用することができると思います をそのためます。
所属していません StackOverflow