40434


laravelで下記のようにコードを書きました。

[code]

    $array = array('hoge','fuga');
    
    $grid->filter(function($filter){
       $filter->equal('column', 'column_label')->select($array);
    });
    
[/code]

ただ、この場合だと「Undefined variable: array」としてエラーが表示されます。  
以下のような記述であれば正常に動作するのですが、前述のコードで動作させるにはどのようにすればよいでしょうか？

[code]

    $grid->filter(function($filter){
       $array = array('hoge','fuga');
       $filter->equal('column', 'column_label')->select($array);
    });
    
[/code]

自分なりに調べて

[code]

    global $array;
    
[/code]

なども追加してみたのですが、上手く行きませんでした。  
よろしくお願いします。


CC BY-SA 3.0
2017-12-21T02:01:59.380
40433
2017-12-21T02:16:40.883
26236
question
php laravel
laravel で Undefined variable エラー


`use` を使います。

[code]

    $array = ['hoge','fuga'];
    
    $grid->filter(function ($filter) use ($array) {
       $filter->equal('column', 'column_label')->select($array);
    });
    
[/code]

クロージャのスコープについて詳しくは[PHPのドキュメント参照](http://php.net/manual/ja/functions.anonymous.php)。


CC BY-SA 3.0
2017-12-21T02:16:40.883
40434
2017-12-21T02:16:40.883
2376
40433
answer