Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel闭包函数外部的访问变量_Php_Laravel_Closures - Fatal编程技术网

Php laravel闭包函数外部的访问变量

Php laravel闭包函数外部的访问变量,php,laravel,closures,Php,Laravel,Closures,我使用的是Laravel8和PHP8 我在全局范围中定义了一个变量,并将其赋值为nullvalue 我正在使用laravel集合的each函数迭代每个元素。在这个闭包中,我有另一个闭包,它是collection的filter函数。我将filter函数的输出赋值到全局变量中,它正在工作,但仅在每个函数的闭包内。(使用xdebug检查) 在闭包外部,变量再次变为null,尽管我使用use()函数在闭包内部传递了变量,但它仍然不起作用 $filtered = null; $product->e

我使用的是Laravel8和PHP8

我在全局范围中定义了一个变量,并将其赋值为
null
value

我正在使用laravel集合的
each
函数迭代每个元素。在这个闭包中,我有另一个闭包,它是collection的
filter
函数。我将filter
函数
的输出赋值到全局变量中,它正在工作,但仅在
每个
函数的闭包内。(使用xdebug检查)

在闭包外部,变量再次变为
null
,尽管我使用
use()
函数在闭包内部传递了变量,但它仍然不起作用

$filtered = null;

$product->each(function ($price) use($coupons, $filtered) {

    $filtered = $coupons->filter(function ($coupon) use($price) {
        if (!empty($price->iso_code)) {
            if ($coupon->iso_code = $price->iso_code) {
                $a = $price->currency_code;
                $b = $coupon->currency_code;
                return $a == $b;
            }
        }
        return $price->currency_code = $coupon->currency_code;
    });

});

return $filtered; //null
我已经提到了&但是运气不好


有人可以指导我如何将
过滤器
函数的输出分配给全局变量吗?

要获得闭包之外的更改效果,需要使用引用,如下所示


要获得闭包之外的更改效果,需要使用引用,如下所示


我试过了,但看起来我还得再等6分钟好的,所以请在那个限制之后再做,提前谢谢。我试过了,但看起来我还得再等6分钟好的,所以请在那个限制之后再做,提前谢谢。
$filtered = null;

$product->each(function ($price) use($coupons, &$filtered) {

    $filtered = $coupons->filter(function ($coupon) use($price) {
        if (!empty($price->iso_code)) {
            if ($coupon->iso_code = $price->iso_code) {
                $a = $price->currency_code;
                $b = $coupon->currency_code;
                return $a == $b;
            }
        }
        return $price->currency_code = $coupon->currency_code;
    });

});

return $filtered;