深入了解 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-10-laravel collection集合
具有多维数组的 Foreach - Laravel Blade 模板
Laravel - 方法 Illuminate\\Support\\Collection::makeHidden 不存在