- 所谓延迟静态绑定,顾名思义,静态调用时::符号左侧的部分的的绑定是延迟,也就是说不再被解析为定义当前方法所在的类,而是在实际运行时计算的。
class A {
public static function who() {
echo __CLASS__.PHP_EOL;
}
public static function test() {
self::who();
}
public static function test2() {
static::who();
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test();//A
B::test2();//B