我正在使用 Laravel 8 和 PHP 8。
我有一个在全局范围内定义并赋值的null
变量。
我正在使用 laravel 的集合each
函数来迭代每个元素。在这个闭包中,我有另一个闭包,它是集合的filter
函数。我正在将过滤器的输出分配给function
全局变量,它正在工作,但each
仅在函数关闭内。(使用 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
有人可以指导我如何将filter
函数的输出分配给全局变量吗?
要在闭包之外获得更改效果,您需要使用引用,像这样
$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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句