与えられた変数やリテラルに対して、あらかじめ決められた処理を行う記号。
大きく分けると、以下のような種類がある。
算術演算子ともいう。
四則演算をはじめ、日常的な数学で利用する演算子。
+, -, *, / % 数値の剰余 ++ 前置加算・後置加算 -- 前置減算・後置減算
++
加算子。インクリメント演算子
与えられたオペランド(被演算子)に対して1加算
--
減算子。デクリメント演算子
与えられたオペランドに対して1減算
アルファベットと数値が混在した文字列に対して加算演算子を適用すると、
末尾がアルファベットであれば次の文字へ、
数値であれば1加算するという処理を行う。
末尾の文字がZ(z)、まは9であった場合には、一つ前の文字に対していわゆる「桁の繰り上げ」を行う。
※しかい、減算子を用いた「マジカルデクリメント」のような機能はない
加算演算子は配列の加算(結合)にも可能。
左の配列に存在しないキーの要素を右配列から取り出し、左の配列に結合する。
左辺で指定した変数に対して、右辺の値を代入するための演算子
=, +=, -=, *=, /=, %=, .=, &=, |=, ^=, <<=, >>=
=& について
ホワイトボードで解説?
==, ===, !=, <>, !==, <, >, <=, >=, ?:
配列も比較演算子を使って比較が可能。
配列の比較は以下の手順で行われる。
1. 要素数で比較
2. 要素数が同じ場合、同じキーを持つ要素同士で大小を比較。
より大きい要素/小さい要素が見つかった時点で判定終了。
3. 1, 2のすべてが等しい場合、両者は等しいとみなされる。
※ただし、比較する配列に同じキーがなかった場合、エラーになる
条件演算子は、指定された条件式の真偽に応じて、対応する式の値を出力する。
これら2つは同じ出力結果となる。
if ($x >= 75) { echo '合格'; } else { echo '不合格'; }
echo $x >= 75 ? '合格' : '不合格';
論理積・論理和にそれぞれ演算子が2種類ずつ用意されているのは、
演算の優先順位が違うため。
&&, ||の方が、and, orよりも早く評価される。
ビット演算を行うための演算子
. 文字列を結合する。
` バッククォートで囲んだ部分をシェルコマンドとして実行する
@ エラーを表示しないようにずる。
演算子には、処理を行うときの優先順位がある。
異なる演算子の処理順序を決めるのが優先順位であれば、
同じ優先順位の演算子を処理する順序を決めるのが結合則。
演算子を左→右、右→左のいずれの方向に処理するか決めるルール。 以下、のような種類がある。
一般的な処理の流れ。
算術演算子、ビット演算子、論理演算子、条件演算子はコレ。
代入演算子と否定演算子がこの部類に入る
比較演算子やキャスト演算子がこの性質を持つ。 同じ優先順位で、非結合の性質を持つ演算子を並べた場合にはエラーになる。
参考資料