一直搞不清楚,今天百度自己也测试了一下。

<?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类,如果在子类重写了父类的方法和属性,那么就调用子类的方法和属性

05-11 14:01