php小編小新將為大家介紹「:=」中的全域變數賦值行為。在早期版本的PHP中,全域變數的賦值需要透過使用關鍵字「global」來聲明。然而,自從PHP 7.4版本引入了「:=」這個全域變數賦值的新語法,我們可以更簡潔地為全域變數賦值,省去了使用「global」關鍵字的步驟。這個新特性不僅提高了程式碼的可讀性和可維護性,還減少了不必要的程式碼量,讓我們更方便地操作全域變數。下面就讓我們一起來詳細了解這個新功能吧!
即使程式碼在main 函數
作用域中使用了:=
,全域level
仍被指派來自getlevel()
傳回值的值。有人可以用語言規範解釋一下,這是如何可預測和記錄的行為。我的想法是更好地閱讀規範,但我顯然沒有這樣做。
程式碼:https://go.dev/play/p/4pz0vl-2snn
65bcfadd4058輸出:-
info <nil> print: info
在您的範例中,:=
實際上引入了一個名為level
的新局部變量,它是根據規格,因為全域作用域不同於任何函數作用域:
簡短的變數宣告可以重新宣告變數,前提是它們最初是在同一塊(或參數列表,如果該區塊是函數體)中以相同的類型宣告的。
您看到所描述的行為的原因是您對 level
的使用實際上都沒有引用全域變數。 main
中的用法是從 :=
新增的局部變量,print
中的用法是函數參數。刪除參數(在宣告和呼叫網站中),您將看到 print
在 print:
之後列印一個空字串。
以上是':=”中的全域變數賦值行為的詳細內容。更多資訊請關注PHP中文網其他相關文章!