我试图了解后期静态绑定,并通过阅读几个堆栈溢出问题和手册,除了我不明白为什么,在我找到的所有示例(包括手册)中,方法直接呼应类名在子类中重复。
我的理解是,从另一个类扩展而来的类继承了其父类的所有方法和属性。因此,为什么在后期静态绑定的PHP手册示例中重复了who()方法。我意识到没有它,父类会得到回应,但无法理解为什么。
请参阅手册中的代码...
<?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();
?>
为什么需要重写 who() 方法,我认为它必须是相同的?提前致谢。