在匿名函數中存取全域變數
在PHP 中,匿名函數通常在自己獨立的作用域內運行,限制了它們存取定義的變數的能力別處。在使用全域變數時,這可能會成為一個障礙。
挑戰:
考慮提供的範例:
1 2 3 4 5 6 7 |
|
在這種情況下,匿名函數無法在其範圍之外修改$ variable的值,導致輸出剩餘「什麼都沒有。」
解決方案:閉包
為了克服這個挑戰,可以使用閉包。閉包是一個函數,即使在退出作用域後,它仍保留對其封閉作用域的變數的存取權限。
要修改匿名函數中的全域作用域變量,請使用以下語法:
1 2 3 |
|
透過在匿名函數中使用“use(&$variable)”,將對全域$變數的引用傳遞到函數中。 “&”表示我們正在傳遞對變數的引用,允許我們在函數內修改它的值。
現在,當匿名函數執行時,它可以成功更改 $variable 的值,並且修改後的值將保留在函數範圍之外。
以上是PHP中匿名函數如何修改全域變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!