首頁  >  文章  >  後端開發  >  PHP中的後期綁定

PHP中的後期綁定

WBOY
WBOY原創
2016-07-29 09:10:451205瀏覽

先看一個例子:

<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教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:nginx rewrite下一篇:PHP学习-1