Laravel在集合过滤中更改变量

时间:2015-08-30 12:17:32

标签: php laravel collections scope filtering

无论如何都要像这样在集合过滤中使$var = 7吗?

$var = 1;

$collection->filter(function( $q ) use ($var){
    if( true ){
        $var = 7;
        return true;
    }
});

dd( $var );

目前这不起作用,我得到的仍然是1

我也试过使用global,但我仍然得到1

1 个答案:

答案 0 :(得分:9)

传递变量by reference,然后它会被更改,例如

$collection->filter(function( $q ) use (&$var){
                                      //^ See here