【发布时间】:2021-04-19 18:14:44
【问题描述】:
我使用闭包函数来创建一个数组。问题是我无法在这个函数之外访问该数组的值。
$categorySlug=array();
GameModel::with("user")->with("categories")->get()->each(function ($query) use ($categorySlug){
foreach ($query["categories"] as $item){
array_push($categorySlug,$item["slug"]);
}
// $categorySlug That's right here
});
// $categorySlug here is empty array
如何从函数外部访问函数内部的数组值?
【问题讨论】:
-
嗯,首先,您需要通过
function ($query) use ($categorySlug)将$categorySlug传递到函数中。除此之外,它应该在foreach()和->each()之后可用,并且应该被填充,但前提是$query["categories"]包含超过0 个元素。这段代码是否有任何错误? -
您必须使用引用,因为数组是在写入时复制的
-
@timLevis 我没有任何错误。只是函数外部的 $categorySlug 是空的。但在内部函数中填充了许多数据。