この記事の目的ときっかけ
Laravelで開発初めて5ヶ月くらいたっけどnull判定がどのように行われるのかあまり理解できておらず毎回なんとなーくで実装していたらめちゃめちゃ時間のムダだったことに気がついた。 そこでパターンを洗い出して一生忘れないようにここに残しておく。 (備忘録です)issetとempty
まずここの使い分けが全くできていなかった。公式ドキュメントに書いてあります。公式は最強。 https://readouble.com/laravel/5.8/ja/blade.htmlisset
定義されていて、かつnullではない時にtrueを返す。empty
空の時にtrueを返す。 ここでいう空というのは、 null, 0, "0", false, 空の配列である。例1
$value = " "
isset($value) = true
定義されている、かつnullではない
empty($value) = true
空
例2
$value = null
isset($value) = false
定義されているがnull
empty($value) = true
空
例6
$value = 0
isset($value) = true
定義されている、かつnullではない
empty($value) = true
空
例7
$value = []
isset($value) = true
定義されている、かつnullではない
empty($value) = true
空