LoginSignup
5
2

More than 1 year has passed since last update.

Laravelのnull判定系の処理実装(is_null, isset, optional)

Last updated at Posted at 2021-06-13

null判定系をよく使うのですが、使い方によってメソッドが異なるので、いくつか整理していこうと思います

if($var) isset empty is_null
$var=1 true true false false
$var=""; false true true false
$var="0"; false true true false
$var=0; false true true false
$var=NULL; false false true true
$var false false true true
$var=array() false true true false
$var=array(1) true true false false

is_null(), isset()

is_null()
if(is_null($test_answer)) {
  // 実行させたい処理を記述
  echo 'nullですよ'
}

if(!is_null($test_answer)) {
  // 実行させたい処理を記述
  echo 'nullじゃない'
}
isset()
if(isset($test_answer)) {
  // 実行させたい処理を記述
  echo 'nullじゃないですよ'
}

optional()の使い方

optional(値がnullでない場合実行, nullの場合はnullを返す)

$street = ($user->address) ? $user->address->street : null;
リレーションやメソッドを引き出す場合
$street = optional($user->address)->getStreet();
関数やメソッドを利用する場合
return optional($date, fn() => Test::parse($date)) ?? [];
メソッドを実行する場合
return optional(User::find($id), function ($user) {
    return new DummyUser;
});
5
2
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
5
2