當前位置:
首頁 > 知識 > 《PHP技術大全·第一卷》之static細緻解讀

《PHP技術大全·第一卷》之static細緻解讀

《PHP技術大全·第一卷》之 static 細緻解讀

靜態變數

知識點

靜態變數必須在聲明為靜態變數時初始化,否則靜態變數將失去意義。

靜態變數在聲明並初始化第一次後再次執行到 static 關鍵字的聲明並初始化的那行代碼時將不再進行聲明和初始化,也就是說靜態變數的值只會聲明和初始化一次,因為靜態變數僅在php代碼編譯時被解析生成。

代碼示例

靜態延遲綁定

知識點

靜態延遲綁定跟靜態變數以及類靜態方法等沒有任何聯繫,PHP 語言小組原本打算定義一個新的語法關鍵字來使用靜態延遲綁定, 但最後還是選擇了已有的 static 關鍵字。

靜態延遲綁定中的"延遲綁定"是指 static:: 不再被解析為當前方法所在的類,而會被解析成運行時所計算出來的類。

代碼示例

當我們刪除 C 類中的 who 方法時輸出為 AB,當我們刪除 B 類中的 who 方法時輸出為 AA,可以發現靜態延遲綁定其實是為了讓我們推導出靜態方法最先被調用的那一個。

最佳實踐

不要用靜態變數,因為它是一種非常規語法,並且會帶來代碼的副作用。

靜態延遲綁定(late static bindings)一定要好好理解一下,因為它會幫助你看懂 PHP 開源框架的源碼實現。

本文永久更新鏈接:https://gitee.com/nodestudy/phpgod/blob/master/zh/02.3.md

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PHP技術大全 的精彩文章:

當PHP伺服器被黑客入侵了該怎麼辦?
php輸出緩衝與http的聯繫

TAG:PHP技術大全 |