一下结果会输出 B class
class A {
public static function className(){
echo "A Class";
}
public static function test(){
static::className();
}
}
class B extends A{
public static function className(){
echo "B Class";
}
}
B::test();
将test中的static改成self。输出A class
class A {
public static function className(){
echo "A Class";
}
public static function test(){
self::className();
}
}
class B extends A{
public static function className(){
echo "B Class";
}
}
B::test();
而实际上,我们想要调用的是B中的方法,既然继承了A中的方法,那么在去访问A中的方法,显然不是我们的想法。