PHPで空白や存在確認として便利なemptyですが、乱用すると意図しない動きをすることがあるケースが多々あります。
emptyの挙動に関して
基本的には下記のものがtrueになります。
- 空白
- null
- false
- 0
- array
- 未定義
個人的に気をつけたいと思う点。
数値の0
これが一番大きいかなと。
金額0円とか徒歩0分を判定したいときに、未定義やnullと0の判定が正確にできません。この場合、値の存在判定に関してはissetなどを使うべきでしょう。
検索などの全判定と値のなし
検索などで値がない時(is null)と全判定を分けたい時に。
この場合,issetなどで判定し、検索条件の中にnullを入れるべき