为什么 Laravel 返回数组不能与 empty() 一起使用,但可以与 count() 一起使用

RJP*_*ikh 3 php count laravel

我正在使用 laravel 框架项目并面临以下问题。

询问:

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

输出 :

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

)
Run Code Online (Sandbox Code Playgroud)

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

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

if(count($result) == 0)
{
   echo "Not Empty check with count()";
}
Run Code Online (Sandbox Code Playgroud)

输出:

Not Empty check with count()
Run Code Online (Sandbox Code Playgroud)

问题 :

我已经empty()在所有项目中使用过,但在laravel 框架项目中我无法知道为什么它$result会进入count()状态而不进入empty()

笔记:

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

请帮助某人。

提前致谢!

sam*_*m12 5

如果你使用集合,你应该使用isEmpty()方法

文档: https: //laravel.com/docs/5.4/collections#method-isempty