对Laravel Collection的深入理解回归(新手)

时间:2017-02-08 03:30:40

标签: php laravel

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

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

2 个答案:

答案 0 :(得分:1)

empty()无效,因为它始终返回true

  

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

Source

答案 1 :(得分:1)

PHP empty manual

  

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

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