【问题标题】:How to get child class name from parent class如何从父类获取子类名称
【发布时间】:2012-03-23 14:15:26
【问题描述】:

我正在尝试在不需要子类上的函数的情况下完成此操作...这可能吗?我有一种感觉不是,但我真的很想确定......

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

【问题讨论】:

    标签: php oop php-5.3 late-static-binding


    【解决方案1】:

    使用get_called_class() 代替__CLASS__。您还可以将static 替换为self,因为该函数将通过后期绑定为您解析类:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-25
      • 2016-09-17
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多