使用回調函數外部計算的變數
在 PHP 中,可以在回調函數外部計算變數並在這些函數中使用它們。讓我們考慮以下場景:
你有一個陣列 $arr 並希望使用 array_filter 建立一個僅包含小於 $arr 中元素平均值的值的新陣列。
來實現如果使用回調函數,您可能會遇到在函數外部計算平均值並在函數內部使用它的挑戰。不過,use 關鍵字提供了一個解決方案。
使用 use 關鍵字
use 關鍵字允許匿名函數從父作用域繼承變數。在這種情況下,您可以如下定義回呼函數:
$avg = array_sum($arr) / count($arr); $callback = function($val) use ($avg) { return $val < $avg; };
這裡,$avg是使用use關鍵字從父作用域繼承的。回調函數現在可以使用 $avg 來過濾元素。
return array_filter($arr, $callback);
使用箭頭函數(PHP 7.4 或更高版本)
PHP 7.4 引入了箭頭函數,它們是匿名函數的更簡潔的替代方案。箭頭函數自動捕獲外部變量,無需使用。
您可以如下定義回調函數:
$callback = fn($val) => $val < $avg;
使用箭頭函數簡化數組過濾
由於箭頭函數非常簡潔,您可以將它們直接嵌入array_filter中call:
return array_filter($arr, fn($val) => $val < $avg);
綜上所述,use關鍵字或箭頭函數可以讓你在回調函數之外計算變數並在回調函數內使用它們,從而實現更靈活、方便的過濾操作。
以上是如何在 PHP 中使用回呼函數外部計算的變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!