PHP8から、三項演算子でthrowによる例外処理ができるようになりました。
理由はthrowの文法が『文』から『式』に変わったから。
できそうでできなかったモヤッとした気持ちが解決してスッキリしたので、いい仕様変更だと思います。
使う機会も多そう。
まずはこのコードを見てください。
なんかできそうじゃないですか?
でもこのコード、PHP7以前はエラーになります。
php74の実行結果
throwの例外処理は式に見えるようで文だから。if, forなどと同じ。
中括弧({})を使わず、セミコロン(;)で終わるのに式じゃないというのがややこしい。
PHP8からは、throwは文から式に変わりました。これで上記のコードは実行可能です。
php80の実行結果
できそうでできなかったモヤモヤが晴れるいい仕様変更だと思います。
使う場面も多そうだし。
PHP公式ドキュメント