⛳
Laravelのoptionalへルパ関数が便利なことに気がついた
はじめに
これまでオブジェクトのnull
判定は三項演算子、null合体演算子などで判定していたけど、
Laravelを使っているならoptionalへルパ関数を使った方がいいんじゃないってことを今更気づいたので少しメモを書いておきます。
環境
- PHP 8.3.1
- Laravel 10.40.0
optionalへルパ関数を使ってみる
これまで
$user = User::find(1);
$user ? $user->name : null;
$user->name ?? null;
optionalへルパ関数
$user = User::find(1);
optional($user)->name;
// 第2引数にクロージャを渡すことも出来る
optional($user, function (User $user) {
return $user->name . 'さん';
});
optionalへルパ関数はnull
しか返してくれないから、null合体演算子と組み合わせてnull
以外を返す使い方もできる。
optional($user)->name ?? '名無し';
PHP8以降は使わないでも大丈夫だったりする
PHP8.0で追加されたnullsafe演算子があれば、optionalへルパ関数を使わないでも同じことができたりする。
$user = User::find(1);
$user?->name;
$user?->name ?? '名無し';
※参考記事
まとめ
本当に今更な感じですが、使ってみると書き方がシンプルになったような気がします。
optionalへルパ関数があれば三項演算子、null合体演算子を使わないってことはないですが、組み合わせて使うこともできるのでこれからはoptionalへルパ関数を使っていこうかなって思います。
懸念点として、nullsafe演算子が使えるようになったことで将来的に廃止される可能性もあるかもしれないですね。
まぁLaravel10の時点ではまだそんなこともないので今のところは使っていても大丈夫でしょう。
Discussion