在PHP5.3中,给类加入了关键词static,用于实现延迟静态绑定(late static binding),那么我们来看看一个示例来好好学习下。

<?php
class A {
protected static $def = '123456';
public static function test() {   echo get_class(new static);  }
public static function test2() {   echo static::$def;  }
}
class B extends A {  protected static $def = '456789'; }
class C extends A {  protected static $def = 'abcdef'; }
echo B::test(); echo '<br>';
echo C::test(); echo '<br>';
echo B::test2(); echo '<br>';
echo C::test2(); echo '<br>';
echo A::test(); echo '<br>';
echo A::test2(); echo '<br>'; 
?1234567 // 输出结果 B C 456789