PHP8.0から使えるunion型についてのメモ

65 回閲覧されました
みなさんこんにちは、jonioです。
今回はPHPのunion型についてのメモの記事になります。
Laravelの無料学習サイトを作りました
Laravelを勉強したい人向けの無料の学習サイトを作りました。
ここからリンクに飛べますのでぜひ利用してください。
union型とは?
下記のLaravelのコードで考えます。
public function showExample(): View|RedirectResponse
{
if (auth()->guest()) {
return redirect()->route('login');
}
return view('example');
}
「: View|RedirectResponse」の部分がunion型です。
複数の返り値の型を指定する為の記述です。
上記の例はViewの型またはRedirectResponseの型を返すのを設定しています。
Viewの型はページを表示する場合(7行目)でRedirectResponseの型はリダイレクトする場合(4行目)です。
指定できない型の組み合わせ
色々あると思いますが例えばboolとfalseはダメです。
理由はboolの中にtrueとfalseの両方を含んでいるからです。
なぜ使うか?
恐らく複数の開発者がコードを見た時に読みやすくなるのとテストの時に型の予測がしやすくなってテストがやりやすくなるからだと思います。