10

次のスニペットは一連の入力フィールドを返しますが、$data が定義されていない (クロージャ内にある) ため、それらの値を設定できません。

$row = array_map(function($n) {
    $name = sprintf('point[%0d]', $n+1);
    $value = $data['measurements'][$n];
    return form_input($name, $value, "class='input-mini'");
}, range($i*6, $i*6+5));

グローバル変数がクールではないことは知っています。これを回避する最善の方法は何ですか?

4

1 に答える 1

25

親スコープからの変数の継承

$row = array_map(function($n) use ($data) {
    $name = sprintf('point[%0d]', $n+1);
    $value = $data['measurements'][$n];
    return form_input($name, $value, "class='input-mini'");
}, range($i*6, $i*6+5));
于 2012-11-14T16:04:47.537 に答える