一直搞不清楚,今天百度自己也测试了一下。
<?php
class A {
public static function closure(){
echo __CLASS__."<br/>";
}
public static function call_self(){
static::closure();
}
public static function call_static(){
self::closure();
}
} class B extends A {
public static function closure(){
echo __CLASS__."<br/>";
}
} A::call_self();//A
A::call_static();//A B::call_self();//A
B::call_static();//B
百度是这样说的:
self是类内指针,指针是指向自己的属性,方法。
static是代表使用了A类,如果在子类重写了父类的方法和属性,那么就调用子类的方法和属性