スキップしてメイン コンテンツに移動

PHP8演算子完全攻略

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; // 先に加算、次に乗算

厳密な比較(===)は型まで一致させるため、予期せぬ型変換を防ぎます。特にユーザー入力を扱う際は必ず厳密比較を使用しましょう。

この記事はAIによって作成されました。

コメント