使用閉包擴展匿名函數中的變數作用域
在PHP 中,匿名函數通常在自己的作用域內運行,無法直接存取外部聲明的變數其中。這在嘗試修改全域變數時可能會帶來挑戰。
讓我們考慮一個範例:
$variable = "nothing"; functionName($someArgument, function() { $variable = "something"; }); echo $variable; //output: "nothing"
在此腳本中,匿名函數無法修改 $variable,因為它駐留在不同的變數中範圍。為了克服這個限制,你可以使用閉包。
使用閉包引用全域變數
閉包,用 use() 表示,允許匿名函數存取來自封閉範圍。要修改匿名函數中的全域變量,只需在閉包中包含& 運算子:
functionName($someArgument, function() use(&$variable) { $variable = "something"; });
在此修改後的範例中,匿名函數使用& 運算子來引用全域範圍內的$ variable 變數。這使得函數能夠修改 $variable 的值,然後可以在其範圍之外檢索和列印該值。
透過利用閉包,您可以有效地擴展匿名函數中變數的範圍,從而在以下情況下提供更大的靈活性:使用全球資料。
以上是如何修改 PHP 匿名函數中的全域變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!