PHPマニュアル読んでたら見かけたけどどういう意味やねん!!!
PHP 8.0.0 以降では、throw キーワードは式として扱えるようになり、 様々なコンテクストで使えるようになりました。 これより前のバージョンでは、throw は文であり、 それが現れる行でだけでしか使えませんでした。
ちょっと何言っているか分からなかったので調べてみたら言葉通りでした。
条件式に throw を書けるということですね…。
サンプルコード
- value が 0 より大きければ value を返却
- value が 0 以下の場合は例外 InvalidArgumentException を投げる
PHP7以前
if ($value > 0) {
return $value;
}
throw new InvalidArgumentException(__CLASS__ . " に範囲外の値が渡されました。" . $value);
PHP8以降はこう書ける
三項演算子の false 側で throw とか
return $value > 0
? $value
: throw new InvalidArgumentException(__CLASS__ . " に範囲外の値が渡されました。" . $value);
if 文の中にそのまま throw を追加するとか
if ($value > 0 || throw new InvalidArgumentException(__CLASS__ . " に範囲外の値が渡されました。" . $value)) {
return $value;
}
感想
個人的にはあまり使わないかもです
ただ知らないとコードレビューで戸惑いそうなので知識として覚えておきます