首頁 > 後端開發 > php教程 > 如何在 PHP 中存取回呼函數作用域之外的變數?

如何在 PHP 中存取回呼函數作用域之外的變數?

Linda Hamilton
發布: 2024-12-19 14:38:10
原創
562 人瀏覽過

How Can I Access Variables Outside a Callback Function's Scope in PHP?

回調函數利用其範圍之外的變數

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板