PHP Static延遲靜態繫結用法分析

2022-10-06 09:39:07 字數 547 閱讀 3553

php5.3以後引入了延遲靜態繫結static,它是為了解決什麼問題呢?php的繼承模型中有乙個存在已久的問題,那就是在父類中引用擴充套件類的最終狀態比較困難。來看乙個例子。

class a

public static function test()

}class b extends a }

b::test(); //輸出a

在php5.3中加入了乙個新特性:延遲靜態繫結,就是把本來在定義階段hiphfqsa固定下來的表示式或變數,改在執行階段才決定,比如當乙個子類繼承了父類的靜態表示式的時候,它的值並不能被改變,有時不希望看到這種情況。

下面的例子解決了上www.cppcns.com面提出的問題:

class a

public static function test()

} class b extends a

程式設計客棧

} b::test(); //輸出b

第8行的static::echoclass();定義了乙個靜態延遲繫結方法,直到b呼叫test的時候才執行原本定義的時候執行的方法。

PHP延遲靜態繫結

1 self用法 self是指向定義它的當前類的指標。當前類 current class class person 獲取年齡 public static function getage 輸出 self name i am person self age 18 2 static用法 static是指向...

PHP延遲靜態繫結

所謂延遲靜態繫結,顧名思義,靜態呼叫時 符號左側的部分的的繫結是延遲,也就是說不再被解析為定義當前方法所在的類,而是在實際執行時計算的。class people public static function eat class fatguy extends people public static ...

PHP靜態延遲繫結

php版本5.3起增加了靜態延遲繫結,也稱遲繫結,主要用於在繼承範圍內引用靜態呼叫的類。簡單地來說 static 不再被解析為當前方法所定義的類,而是在實際執行時計算的。意外的繼承 class person class man extends person echo man say person在這...