PHPのarray関連の関数でクロージャーを使う場合の話。
例えば、ある関数に引数を渡して、その引数の値以上の結果を返す場合。
//NG
function filterResultsNG($threshold) {
$all = array(2,0,-1,3,4,-5);
return array_filter($all, function($v) {
return $v >= $threshold;
});
}
//useを使うとOK
function filterResults($threshold) {
$all = array(2,0,-1,3,4,-5);
return array_filter($all, function($v) use ($threshold) {
return $v >= $threshold;
});
}