gpt4 book ai didi

php - 为什么Laravel返回数组不能使用empty()但可以使用count()

转载 作者:行者123 更新时间:2023-12-04 15:33:30 24 4
gpt4 key购买 nike

我正在与laravel框架项目一起工作,并面临以下问题。

查询:

$query = DB::table('test');
$query->select('*');
$query->where('testId = 1');
$result = $query->get();
print_r($result);


输出:

Illuminate\Support\Collection Object
(
[items:protected] => Array
(
)

)


现在,我正在检查 $result是否有记录。

if(empty($result))
{
echo "Not Empty check with empty()";
}

if(count($result) == 0)
{
echo "Not Empty check with count()";
}


输出:

Not Empty check with count()


题 :

我在所有项目中都使用了 empty(),但是在laravel框架项目中,我不知道为什么 $result处于 count()条件而不是 empty()的原因。

注意:


我已经读过,count()与empty()相比还比较慢,而且empty()检查变量是否已设置,所以我在所有返回数组或对象数组中使用empty()。


请帮助某人。

提前致谢!

最佳答案

使用->get()方法,您将获得collection的实例。

当对从get方法获得的数据应用empty()时,您会注意到即使没有结果也总是返回Illuminate\Support\Collection的实例。

使用->get()方法获取数据时,不能简单地使用以下方法,

if(empty($data)){ 

}

if(!data){

}

if($data){

}


除了上面的内容,您可以简单地使用,

isEmpty($data) or 

count($data) or

$data->count()

关于php - 为什么Laravel返回数组不能使用empty()但可以使用count(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45184475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com