在继承范围内引用静态调用的类
首先来看下面这个例子:
	<?php
	class Person
{
    public static function status()
    {
        self::getStatus();
    }
	    protected static function getStatus()
    {
        echo "我是过去";
    }
}
	
	// Deceased 继承 Person类
	class Deceased extends Person
{
    protected static function getStatus()
    {
        echo "未来已来";
    }
}
 
Deceased::status(); // 输出:我是过去
?>
很明显,结果不是我们预期的,这是因为self::取决于定义时所在的类,而不是运行中的类。为了解决这个问题,你可能会在继承类中重写status()方法,但更好的解决方案是使用PHP 5.3后添加了后期静态绑定的功能。
	
	<?php
class Person
{
    public static function status()
    {
        static::getStatus();
    }
    protected static function getStatus()
    {
        echo "我是过去";
    }
}
 
class Deceased extends Person
{
    protected static function getStatus()
    {
        echo "未来已来";
    }
}
 
Deceased::status();  // 输出:未来已来    
	//与预计输出一致。
	?>