[Laravel] optionalヘルパの使いどころ
Laravel には optional() というヘルパがある
optional(User::find(1))->name;のように使うと、User::find(1) が null の場合は普通エラーになるところだが null を返してくれるようになる。
三項演算子や null 合体演算子を使うならそれぞれ
is_null(User::find(1)) ? null : User::find(1)User::find(1)->name ?? null
となるだろう。こうして比べてみると、optional()を使うとチェーンの中で処理が完結していて読みやすいことがよくわかる。
ただ、値が存在しなかった場合に null 以外の値を返すことができないので、null 以外の値を返したいときは ?? を使う。
User::find(1)->name ?? 'guest'