在5.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 '
';
-
echo C::test();
-
echo '
';
-
echo B::test2();
-
echo '
';
-
echo C::test2();
-
echo '
';
-
echo A::test();
-
echo '
';
-
echo A::test2();
-
echo '
';
-
-
// 输出结果
-
B
-
C
-
456789
-
abcdef
-
A
-
123456
阅读(861) | 评论(0) | 转发(0) |