一些类似判断是否为空的方法比较:isset, empty, is_null

比较

$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

is_null 和 ===null 的差别

注意!== null=== null 不一样,==null 的结果会跟 empty 一样

Laravel source code 可以看到满多 is_null 的使用

is_null 的优缺点

  • 优点:

    • 较易读 (?)
    • 较不容易写错 (少写一个等号之类的)
  • 缺点:

    • 可能比较慢 (?) (详细可看讨论串)

Check collection is empty

另外,如果手上有一个 collection,想检查它是否为空,上面的 emptyis_null 都没有用

$c = collect([]);  // 做一个空的 collection

dump(is_null($c)); // false
dump(empty($c));   // false

幸好 collection 自己有提供一个方法去检查!

dump($c->isEmpty()); // true

Reference


<<:  Ruby 实体变数(instance variable)

>>:  Day 08 「说好的射後不理呢?」多线程环境下的单元测试

【day28】宠物邀约上传流程修改 X ViewPager2 with indicator

前几天我们成功上传了多张照片,但是我们的画面有点丑丑的,所以我们今天要把它修改成更漂亮,且下面会有...

Day 17 淘家集运 插画分享

来找设计师一起 side project,前後端 / UIUX 皆可ㄛ。配对单连结: https:...

Batch Processing (1) - Batch Processing with Unix Tools

Batch Processing 从去年开始写 本系列文 开始到现在,我们着墨的都是现代系统的样子,...

WP Rocket 一整年难得的7折优惠+7款外挂测速比较

黑色购物节,只有9天:所有方案7折 折扣内容:所有方案皆享「7折」优惠 折扣期间:2020/11/...

离职倒数20天:我想要创造新的连结,让我可以不要在这条新的路上这麽无助

每年生日刚好是伊豆诸岛的旺季开始前一周,通常天气宜人,海水清澈到可以目视钓鱼,离东京只要搭船三小时,...