有沒有一種簡潔的方法來初始化閉包中使用的變數?
function() use($v = 0) { echo $v }
...不起作用
一個示例用例是 array_reduce,我們可能想要計算陣列元素......
echo array_reduce(['a', 'b', 'c'], function($output, $item) use(&$count) { return $output . $count . '. ' . $item . "\n"; }, '');
這將起作用 - 通過參考宣告 $count 并從 null 遞增不會產生錯誤 - 但我認為這不是“好習慣”。
uj5u.com熱心網友回復:
您可以使用static初始化一次的變數。
echo array_reduce(['a', 'b', 'c'], function($output, $item) { static $count = 0; return $output . $count . '. ' . $item . "\n"; }, '');
演示:https ://3v4l.org/D0Nv2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/481782.html
上一篇:自定義助手在laravel中不起作用,它在控制器中回傳未定義的函式
下一篇:重新組織樹枝中的陣列
