Php 为什么在使用is_数组检查时,laravel中get()函数的返回不是数组
我刚刚接触laravel,今天我运行了一些代码,并被困在这段代码中Php 为什么在使用is_数组检查时,laravel中get()函数的返回不是数组,php,arrays,laravel,Php,Arrays,Laravel,我刚刚接触laravel,今天我运行了一些代码,并被困在这段代码中 $topic = topic::where('id', $id)->get(); if(is_array($topic)){ echo 'yes'; } else{ echo 'no'; } 结果是“否”,但我可以“foreach”循环每个主题 正如我所说,“Foreach”只接受数组参数,但如果它是一个实数组,为什么数组返回“no”?因为它不是数组
$topic = topic::where('id', $id)->get();
if(is_array($topic)){
echo 'yes';
}
else{
echo 'no';
}
结果是“否”,但我可以“foreach”循环每个主题
正如我所说,“Foreach”只接受数组参数,但如果它是一个实数组,为什么数组返回“no”?因为它不是数组。这是一个好主意 您可以使用
toArray()
方法将其转换为数组:
$topic = topic::where('id', $id)->get()->toArray();
我想补充一点 最后,您将循环查看它是数组还是集合 $topic=topic::where('id',$id)->get()->toArray()
因此,为什么需要将其强制转换为数组,将结果作为数组返回只需要额外的执行时间,而您可以对集合执行相同的操作。同样值得一提的是,由于大量的操作,处理集合可以非常轻松。检查链接表单官方文档 然后可以检查空集合,如
isEmpty()
等。
尽量使用Laravel提供给您的现成信息。您对
foreach
的理解是错误的。可以使用foreach
(以及数组)迭代任何内容,谢谢!。所以我可以循环遍历集合,因为laravel使它能够(laravel核心使集合充当迭代器)某种程度上。但不是Laravel,是PHP做的。