先看一個例子:
<code><?php class A { public static function who() { echo __CLASS__; } public static function test() { self::who(); } } class B extends A { public static function who() { echo __CLASS__; } } B::test(); ?></code>
輸出:
<code>A </code>
如果使用後期綁定:
<code><?php class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // 后期静态绑定从这里开始 } } class B extends A { public static function who() { echo __CLASS__; } } B::test(); ?></code>
輸出:
<code>B </code>
使用self:: 或者CLASS 對當前類別的靜態引用,取決於當前方法所在方法所在的類別,而不是呼叫者所在的類別。
「後期綁定」的意思是說,static:: 不再被解析為定義當前方法所在的類,而是在實際運行時計算的。也可以稱之為“靜態綁定”,因為它可以用於(但不限於)靜態方法的呼叫。
以上就介紹了 PHP中的後期綁定,包括了靜態方法方面的內容,希望對PHP教程有興趣的朋友有所幫助。