如果到现在我在 ststic 中理解了一点现在我意识到我什么都不懂。我很困惑,我很难理解,我不能。有人可以在使用 self、parent、static 时解释这个程序,以及我所做的所有最小的改变如何改变结果,而我无法理解发生了什么。多谢 ..
来自http://docs.php.net/language.oop5.late-static-bindings的代码
<?php
class A {
public static function foo() {
static::who();
}
public static function who() {
echo __CLASS__."\n";
}
}
class B extends A {
public static function test() {
A::foo();
parent::foo();
self::foo();
}
public static function who() {
echo __CLASS__."\n";
}
}
class C extends B {
public static function who() {
echo __CLASS__."\n";
}
}
C::test();
?>
输出是:
A
C
C