深入了解 Laravel Collection 回归(新手)

Posted

技术标签:

【中文标题】深入了解 Laravel Collection 回归(新手)【英文标题】:Deeper understanding on Laravel Collection returns (newbie) 【发布时间】:2017-06-25 13:01:10 【问题描述】:

为什么我不能使用空数组($example->body),而需要使用$example->body->isEmpty() 来检查空数组。什么返回类型导致它不能使用empty()需要依赖isEmpty()

我知道这是基于 post 的 Laravel Collection。但是真的不明白为什么在幕后。非常感谢任何启发(但我会尝试从新毕业的 POV 中理解它)

【问题讨论】:

【参考方案1】:

empty() 无法工作,因为它总是返回 true

因为如果你 dd($example);您会注意到您会注意到始终返回 Illuminate\Support\Collection 的实例,即使没有结果也是如此。基本上你要检查的是 $a = new stdClass; if ($a) ... 将始终返回 true。

Source

【讨论】:

【参考方案2】:

php empty manual.

如果 var 存在并且具有非空、非零值,则返回 FALSE。 否则返回 TRUE。

在手册中,他们提供了被认为是空的东西。 object 类型不是其中的一部分。 Laravel 集合的实例 (Illuminate\Support\Collection) 被视为 object 类型。如果对象是PHP 的纯空对象无关紧要,empty() 将始终返回false

【讨论】:

谢谢。我了解 PHP empty() 返回 TRUE 或 FALSE 标志取决于空。但我没有理解为什么它被认为是 empty() FALSE。如果它被视为对象,那么它将始终通过 empty() 返回 FALSE。

以上是关于深入了解 Laravel Collection 回归(新手)的主要内容,如果未能解决你的问题,请参考以下文章

深入了解laravel消费队列的两种工作模式

laravel-10-laravel collection集合

具有多维数组的 Foreach - Laravel Blade 模板

是Collection Laravel实例还是PHP实例?

Laravel Collection 实际使用

Laravel - 方法 Illuminate\\Support\\Collection::makeHidden 不存在