2012-03-06 20 views
6

子クラスで関数を必要とせずにこれを達成しようとしています...これは可能ですか?私はそれがない感じがありますが、私は実際に確認したい...親クラスから子クラス名を取得する方法

<?php 
class A { 
    public static function who() { 
     echo __CLASS__; 
    } 
    public static function test() { 
     static::who(); // Here comes Late Static Bindings 
    } 
} 

class B extends A { 
    public static function who() { 
     echo __CLASS__; 
    } 
} 

B::test(); //returns B 
?> 

答えて

13

利用get_called_class()の代わり__CLASS__。また、関数が遅れてあなたのための結合を介してクラスを解決しますようselfstaticを置き換えることができるようになります:

class A { 
    public static function who() { 
     echo get_called_class(); 
    } 
    public static function test() { 
     self::who(); 
    } 
} 

class B extends A {} 

B::test(); 
関連する問題