將外部變數合併到匿名函數參數
在程式設計中,經常需要存取在函數作用域之外定義的變數。當使用匿名函數作為參數時,此任務可能具有挑戰性。
讓我們考慮以下場景:函數 fetch() 用於處理資料庫行並將它們作為參數傳遞給匿名函數。每行都可以使用 $r['title'] 訪問,但需要將這些標題連接到一個變數。
雖然可以使用全域修飾符,但這不是優雅的解決方案。更合適的方法是使用use 關鍵字,如以下程式碼所示:
$result = ''; fetch("SELECT title FROM tbl", function($r) use (&$result) { $result .= $r['title']; });
use 關鍵字透過引用捕捉外部變數result (&$result) 並使其在匿名函數中可用.
但請注意,use() 參數表現出早期綁定。這意味著它們在 lambda 函數宣告時使用變數的值,而不是在呼叫時(後期綁定)。
以上是如何在 PHP 中存取匿名函數參數中的外部變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!