7

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

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

1 回答 1

14

使用get_called_class()而不是__CLASS__. 您还可以替换为staticself因为该函数将通过后期绑定为您解析类:

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

class B extends A {}

B::test();
于 2012-03-06T04:42:15.190 回答