Php 为什么在循环中访问之前阵列是空的?
我正在深入研究一个Laravel应用程序,并遇到了以下函数。这被称为路由过程的一部分(我正试图弄清楚这一点),我遇到了一个奇怪的情况,某种魔法正在发生。调用函数时,$数组包含一个字符串数组。但是,当我在下面可以看到的某些点转储数组时,它已经完全被转换了Php 为什么在循环中访问之前阵列是空的?,php,laravel,Php,Laravel,我正在深入研究一个Laravel应用程序,并遇到了以下函数。这被称为路由过程的一部分(我正试图弄清楚这一点),我遇到了一个奇怪的情况,某种魔法正在发生。调用函数时,$数组包含一个字符串数组。但是,当我在下面可以看到的某些点转储数组时,它已经完全被转换了 /** * Return the first element in an array passing a given truth test. * * @param array $array * @param callable|nul
/**
* Return the first element in an array passing a given truth test.
*
* @param array $array
* @param callable|null $callback
* @param mixed $default
* @return mixed
*/
public static function first($array, callable $callback = null, $default = null)
{
if (is_null($callback)) {
if (empty($array)) {
return value($default);
}
foreach ($array as $item) {
return $item;
}
}
数组在此为空
数组现在包含一个对象
任何关于我应该读什么的建议都会很好
谢谢检查您认为数组可能是一个对象。我不明白您将数组转储到您的function@BaptisteArnaud一次在第二个foreach之前,一次在第二个foreach中检查您认为数组可能是一个对象。我不明白您将数组转储到您的function@BaptisteArnaud从前第二个foreach和第二个foreach中的一次
dd($array) // []
foreach ($array as $key => $value) {
dd($array);
if (call_user_func($callback, $value, $key)) {
return $value;
}
}
return value($default);
}