PHP8演算子完全攻略
演算子の概要
PHP8では演算子(演算子)が再設計され、より直感的で安全なコードを書くことが可能になりました。演算子は算術演算子、論理演算子、比較演算子、代入演算子などに分類されます。特に厳密な比較(===)と論理演算子(and, or, xor)は、型安全を保つ上で重要です。
算術演算子は数値計算を行い、+, -, *, /, % などが代表的です。論理演算子は真偽値を組み合わせ、! (not), && (and), || (or) などがあります。
PHP8で導入された新演算子
PHP8では「宇宙船演算子」(??) と「Null合体代入演算子」(??=) が追加されました。宇宙船演算子は左辺が null でない場合にその値を返し、null の場合に右辺を返します。これにより、従来の三項演算子や isset() を組み合わせたコードを簡潔に書けます。
$value = $input ?? 'default'; // $input が null なら 'default' を代入
Null合体代入演算子は、変数が null のときにのみ代入を行います。これにより、初期化の重複を防げます。
$config ??= []; // $config が null なら空配列を代入
また、三項演算子(?:)は依然として有効ですが、PHP8では「短縮三項演算子」(?: の省略形) が導入され、$a ?: $b のように書けます。
演算子の優先順位と実践
演算子の優先順位は、計算の順序を決定します。PHP8では演算子の優先順位表が更新され、特に論理演算子と比較演算子の関係が明確化されました。以下は主要な優先順位の例です。
- 算術演算子(
* / %) >+ - - 比較演算子(
== != === !== < > <= >=) - 論理演算子(
! && ||) - 代入演算子(
= += -= *= /= %=)
優先順位を意識しないと、意図しない結果になることがあります。例えば、$a = $b && $c; は $a = ($b && $c); と評価されますが、($a = $b) && $c; とは異なります。括弧で明示的に優先順位を指定することが推奨されます。
$result = ($a + $b) * $c; // 先に加算、次に乗算
厳密な比較(===)は型まで一致させるため、予期せぬ型変換を防ぎます。特にユーザー入力を扱う際は必ず厳密比較を使用しましょう。
コメント
コメントを投稿