概要
- 実務でnullsafe演算子を使う事があったのでどういうものかまとめておく。
nullsafe演算子
-
nullsafe演算子は下記である。
?->
-
下記の様なコードがあったとする。
if (is_null($repository)) { $result = null; } else { $user = $repository->getUser(5); if (is_null($user)) { $result = null; } else { $result = $user->name; } }
-
下記の様な処理になっている。
-
$repository
がnullのときnullを$result
に格納する。 -
$repository
がnullではないかつ、$repository->getUser(5)
がnullのときnullを$result
に格納する。 -
$repository
がnullではないかつ、$repository->getUser(5)
がnullじゃないとき$user->name
を$result
に格納する。
-
-
PHP8からのnullsafe演算子を用いると下記の様に記載する事ができるらしい。(nullsafe演算子の左側の値がnullの時にそれ以降処理を実行せずnullを返す。)
$result = $repository?->getUser(5)?->name;
-
nullsafe演算子を用いることで複雑な記載を1行で記載する事ができる。