PHP延遲靜態綁定示例分享

來源:文萃谷 2.25W

在PHP5.3中,給類加入了關鍵詞static,用於實現延遲靜態綁定(late static binding),那麼我們來看看一個示例好好學習下。

PHP延遲靜態綁定示例分享

沒怎麼用過這個新特性,其實也不算新啦,試試吧,現在靜態類的繼承很方便了

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

熱門標籤