PHP延遲靜態綁定示例分享
來源:文萃谷 2.25W
在PHP5.3中,給類加入了關鍵詞static,用於實現延遲靜態綁定(late static binding),那麼我們來看看一個示例來好好學習下。
沒怎麼用過這個新特性,其實也不算新啦,試試吧,現在靜態類的繼承很方便了
33
<?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>';
// 輸出結果
B
C
456789
abcdef
A
123456