self ::
在哪个类里调用的就调用哪个类中的方法,不受重写的影响。static ::
调用的方法如果被子类重写,那调用的就是子类中的方法。
//父类
class father
{
public static function name()
{
echo "xiaosan";
echo "<br />";
}
public static function callself()
{
self::name(); //调用name方法
}
public static function callstatic()
{
static::name(); //静态绑定
}
}
//继承类
class son extends father
{
//重写name方法
public static function name()
{
echo "gaojin";
echo "<br />";
}
}
son::callself(); // xiaosan
son::callstatic(); // gaojin