変数$hoge
がnull
だったらtrue
を返したい処理を書いてたとき、
演算子の優先順位で少し詰まったので、備忘録として残します。
$hoge = null
return (bool) $hoge ?? true;
これはtrueが返りそうですがfalseが返ります。
実は型キャスト演算子は、優先的に処理される部類の演算子です。
PHPのリファレンスによると、型キャスト演算子 → null合体演算子の順で評価されます。
PHP: 演算子の優先順位 - Manual
なので、null合体演算子 → 型キャスト演算子の順で評価したいのであれば、
括弧でグループ化してあげて、以下のように優先順位を決めます。
$hoge = null
return (bool) ($hoge ?? true); // true