2012-03-06 20 views
6

Çocuk sınıfında bir işlev gerektirmeden bunu gerçekleştirmeye çalışıyorum ... bu mümkün mü? Kullanım get_called_class() yerine __CLASS__ ...A sınıfı sınıftan alt sınıf adı nasıl alınır

<?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 
?> 

cevap

13

Ben o değil his var, ama gerçekten emin olmak istiyorum. Ayrıca işlev, sizin için geç bağlama yoluyla sınıfı çözecek olduğundan static'u self ile değiştirebileceksiniz.

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

class B extends A {} 

B::test();