laravel で Undefined variable エラー

投稿者: Anonymous

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

$array = array('hoge','fuga');

$grid->filter(function($filter){
   $filter->equal('column', 'column_label')->select($array);
});

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

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

自分なりに調べて

global $array;

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

解決

use を使います。

$array = ['hoge','fuga'];

$grid->filter(function ($filter) use ($array) {
   $filter->equal('column', 'column_label')->select($array);
});

クロージャのスコープについて詳しくはPHPのドキュメント参照

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *