回調函數利用其範圍之外的變數
在PHP 中,通常需要使用對直接外部定義的資料進行操作的回調函數範圍。為此,可以使用 use 關鍵字明確匯入這些變數。
在提供的範例中,初始化陣列 $arr,並計算其平均值 ($avg)。然而,在匿名回呼函數 $callback 中,我們遇到了一個問題,因為 $avg 未定義。
為了解決這個問題,我們可以利用use 關鍵字:
$callback = function($val) use ($avg) { return $val < $avg; };
透過加入use ($avg),父作用域中的$avg 變數被匯入回調函數中,允許我們在計算中使用它。
PHP 中可用的另一種方法7.4及更高版本是箭頭函數的使用:
$callback = fn($val) => $val < $avg;
箭頭函數自動捕獲外部變量,簡化流程。或者,我們可以進一步簡化,並將回調定義直接包含在 array_filter 呼叫中:
return array_filter($arr, fn($val) => $val < $avg);
這展示了 PHP 在解決使用回調函數之外計算的變數的需求方面的多功能性。
以上是如何在 PHP 中存取回呼函數作用域之外的變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!