$x | isset($x) | empty($x) | is_null($x) |
---|---|---|---|
null | false | true | true |
[] | true | true | false |
"" | true | true | false |
0 | true | true | false |
"0" | true | true | false |
empty()
的話,0
"0"
""
都會判定為空的。isset
只有 null
會是 false
,其他情況都會是 true
。注意!
== null
跟=== null
不一樣,==null
的結果會跟empty
一樣
Laravel source code 可以看到滿多 is_null
的使用
is_null 的優缺點
優點:
缺點:
另外,如果手上有一個 collection,想檢查它是否為空,上面的 empty
和 is_null
都沒有用
$c = collect([]); // 做一個空的 collection
dump(is_null($c)); // false
dump(empty($c)); // false
幸好 collection 自己有提供一個方法去檢查!
dump($c->isEmpty()); // true