-1

重複の可能性:
匿名 PHP 関数の作成中に変数をレンダリングする

私はまだPHPに慣れていないので、これは私を悩ませます:

class Controller {
    ...
    ...
    function _activateCar() {
        $car_id = $this->data['car']->getId();
        // $car_id == 1
        $active_car = array_filter($this->data['cars'], function($car){
            // $car_id undefined
            return $car->getId() == $car_id;
        });
    }
    ...
    ...
}

array_filter 内の関数が$car_id変数にアクセスできないのはなぜですか? 未定義と言い続けます。

$car_idを作成する以外にアクセス可能にする方法はあり$_GET['car_id'] = $car_id;ますか? キーワードを使用してglobalも役に立ちませんでした。

4

2 に答える 2

5

use($car_id)次のように、匿名関数に追加する必要があります。

$active_car = array_filter($this->data['cars'], function($car) use($car_id){
    // $car_id undefined
    return $car->getId() == $car_id;
});
于 2012-12-23T16:22:39.583 に答える
5

use無名関数は、キーワードを使用して選択変数をインポートできます。

$active_car = array_fiter($this->data['cars'],function($car) use ($car_id) {
    return $car->getId() == $car_id;
});
于 2012-12-23T16:22:53.857 に答える