15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravelでのnull値判定

Posted at

この記事の目的ときっかけ

Laravelで開発初めて5ヶ月くらいたっけどnull判定がどのように行われるのかあまり理解できておらず毎回なんとなーくで実装していたらめちゃめちゃ時間のムダだったことに気がついた。 そこでパターンを洗い出して一生忘れないようにここに残しておく。 (備忘録です)

issetとempty

まずここの使い分けが全くできていなかった。公式ドキュメントに書いてあります。公式は最強。 https://readouble.com/laravel/5.8/ja/blade.html

isset

定義されていて、かつ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

空

リクエストの場合は空文字が勝手にnullになる

Laravel5.4以降はリクエストで" " のような値が渡されると勝手にnullになる。empty使っておけばあまり問題ないかとは思います。

まとめ

issetとemptyでは判定対象が違います。そこさえ把握しておけば難しいことはないのだなーと思いました。
15
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?