目次
はじめに
あー、ほら、アレ、なんだっけかなー?っていうときに見て欲しい一覧表を作ってみました。
PHP(プログラミング)を学び始めると、必ず出てくるのが「演算子」です。
演算子はプログラムの処理を組み立てるための基本的な要素であり、これを理解することで計算処理や条件分岐、代入などがスムーズに書けるようになります。
この記事では、PHPに登場する演算子をカテゴリー別に一覧表で整理し、サンプルコードも交えてわかりやすく解説していきます。
業務でわからなくなった時や、勉強中に一覧表を見たい時などにお使い頂けると幸いです。
(おまけで下の方に数学関数も置いてます。)
1. 算術演算子(Arithmetic Operators)
数値計算を行うときに使う基本的な演算子です。
演算子 | 意味 | 使用例 | 結果 |
---|---|---|---|
+ | 加算 | 5 + 3 | 8 |
- | 減算 | 5 - 3 | 2 |
* | 乗算 | 5 * 3 | 15 |
/ | 除算 | 5 / 2 | 2.5 |
% | 剰余(余り) | 5 % 2 | 1 |
** | べき乗 | 2 ** 3 | 8 |
2. 代入演算子(Assignment Operators)
変数に値を代入するための演算子です。
演算子 | 意味 | 使用例 | 結果 |
---|---|---|---|
= | 代入 | $x = 5 | $x に 5 |
+= | 加算して代入 | $x += 3 | $x = $x + 3 |
-= | 減算して代入 | $x -= 2 | $x = $x - 2 |
*= | 乗算して代入 | $x *= 2 | $x = $x * 2 |
/= | 除算して代入 | $x /= 2 | $x = $x / 2 |
%= | 剰余を代入 | $x %= 2 | $x = $x % 2 |
**= | べき乗して代入 | $x **= 2 | $x = $x ** 2 |
3. 比較演算子(Comparison Operators)
条件分岐でよく使われます。
演算子 | 意味 | 使用例 | 結果 |
---|---|---|---|
== | 等しい | 5 == "5" | true |
=== | 型も含めて等しい | 5 === "5" | false |
!= | 等しくない | 5 != 3 | true |
!== | 型も含めて等しくない | 5 !== "5" | true |
> | より大きい | 5 > 3 | true |
< | より小さい | 5 < 3 | false |
>= | 以上 | 5 >= 5 | true |
<= | 以下 | 3 <= 5 | true |
<=> | 宇宙船演算子 | 5 <=> 3 | 1(左が大きい) |
4. 論理演算子(Logical Operators)
複数の条件を組み合わせるときに使います。
演算子 | 意味 | 使用例 | 結果 |
---|---|---|---|
&& | AND(かつ) | (5 > 3 && 2 > 1) | true |
` | ` | OR(または) | |
! | NOT(否定) | !(5 > 3) | false |
and | AND(低い優先度) | (5 > 3 and 2 > 1) | true |
or | OR(低い優先度) | (5 > 3 or 2 < 1) | true |
xor | 排他的OR | (true xor true) | false |
5. インクリメント・デクリメント演算子
変数の値を1増減させるためのもの。
演算子 | 意味 | 使用例 | 結果 |
---|---|---|---|
++$x | 前置インクリメント | $x=5; ++$x; | 6 |
$x++ | 後置インクリメント | $x=5; $x++; | 5(次から6) |
--$x | 前置デクリメント | $x=5; --$x; | 4 |
$x-- | 後置デクリメント | $x=5; $x--; | 5(次から4) |
6. 文字列演算子(String Operators)
演算子 | 意味 | 使用例 | 結果 |
---|---|---|---|
. | 文字列結合 | "Hello" . "World" | HelloWorld |
.= | 結合して代入 | $str = "Hello"; $str .= "World"; | HelloWorld |
7. 配列演算子(Array Operators)
演算子 | 意味 | 使用例 |
---|---|---|
+ | 配列の結合 | [1,2] + [2,3] → [1,2,3] |
== | 配列が等しい | ['a'=>1] == ['a'=>1] → true |
=== | 配列が完全一致 | 同上(順序・型まで一致) |
!= | 等しくない | ['a'=>1] != ['a'=>2] → true |
!== | 完全一致でない | 同上 |
8. 型演算子(Type Operators)
演算子 | 意味 | 使用例 |
---|---|---|
instanceof | オブジェクトが特定クラスのインスタンスか判定 | $obj instanceof MyClass |
9.特殊な演算子まとめ
演算子 | 名称 | 意味 / 説明 | 使用例 | 結果 |
---|---|---|---|---|
<=> | 宇宙船演算子(Spaceship Operator) | 左右を比較し、左が小さいなら -1、等しいなら 0、左が大きいなら 1 を返す | 5 <=> 3 | 1 |
?: | 三項演算子(Ternary Operator) | 条件 ? 真の場合 : 偽の場合 の形式で条件分岐を一行で書ける | $x > 0 ? 'OK' : 'NG' | $x=1 なら OK |
?? | NULL合体演算子(Null Coalescing Operator) | 左辺がNULLなら右辺を返す | $name = $input ?? 'ゲスト'; | $input がNULLなら 'ゲスト' |
@ | エラー制御演算子 | 実行時エラーを非表示にする | @$x = 1/0; | エラーを抑制 |
. | 文字列結合演算子 | 文字列を結合する | "Hello" . "World" | HelloWorld |
.= | 文字列結合代入演算子 | 文字列を結合して代入する | $str = "Hello"; $str .= "World"; | HelloWorld |
`cmd` | 実行演算子(Execution Operator) | 文字列をシェルコマンドとして実行し、結果を返す | $output = `ls`; | ディレクトリ一覧 |
10.PHP 演算子の優先順位(全体版)
PHPの演算子は多いですが、優先順位を知っておくと 思わぬバグを防ぐ ことができます。
以下の表は主な演算子を優先度順に並べたものです。
優先度(高→低) | 演算子 | 説明 | 使用例 |
---|---|---|---|
1 | clone 、new | オブジェクト生成、コピー | $obj = new MyClass(); |
2 | [ ] | 配列要素のアクセス | $arr[0] |
3 | ++ -- | インクリメント、デクリメント(前置) | ++$x |
4 | ** | べき乗 | 2 ** 3 → 8 |
5 | ~ ! | ビット否定、論理否定 | !true → false |
6 | * / % | 乗算、除算、剰余 | 5 % 2 → 1 |
7 | + - . | 加算、減算、文字列結合 | "A" . "B" → "AB" |
8 | << >> | ビットシフト | 8 >> 2 → 2 |
9 | < <= > >= | 比較演算子 | 5 > 3 |
10 | == != === !== <=> | 等価、非等価、厳密比較、宇宙船演算子 | 5 <=> 3 → 1 |
11 | & | ビットAND | 6 & 3 → 2 |
12 | ^ | ビットXOR | 6 ^ 3 → 5 |
13 | | | ビットOR | 6 | 3 → 7 |
14 | && | 論理AND | (true && false) → false |
15 | || | 論理OR | (true || false) → true |
16 | ?? | NULL合体演算子 | $name = $input ?? 'guest'; |
17 | ?: | 三項演算子 | $x > 0 ? 'OK' : 'NG' |
18 | = += -= *= /= %= .= | 代入演算子 | $x += 3; |
19 | and | 論理AND(低い優先度) | $a = true and false; |
20 | xor | 排他的OR(低い優先度) | $a = true xor false; |
21 | or | 論理OR(低い優先度) | $a = false or true; |
補足ポイント
!
(否定)、~
(ビット否定)は思った以上に強い。- 三項演算子
?:
と NULL合体演算子??
は実務で大活躍するが、代入との絡みで誤解しやすい。 and
/or
は優先度が極端に低いため、括弧で囲うか&&
/||
を使うのが安全。
まとめ
PHPの演算子は種類が多く、最初は「覚えきれない!」と感じるかもしれません。しかし、カテゴリごとに整理して学ぶことで自然と使えるようになります。特に 比較演算子・論理演算子・代入演算子 は実務で頻出なので、表を見ながら書いていくとすぐに慣れるでしょう。
しっかりとPHPを学ぶなら、PHPに強いインターネットアカデミーがおすすめです。

おまけ:PHP 数学関数(Math Functions)一覧
関数 | 説明 | 使用例 | 結果 |
---|---|---|---|
abs() | 絶対値を返す | abs(-5) | 5 |
ceil() | 小数点を切り上げ | ceil(4.2) | 5 |
floor() | 小数点を切り捨て | floor(4.8) | 4 |
round() | 四捨五入 | round(4.6) | 5 |
max() | 最大値を返す | max(1, 5, 3) | 5 |
min() | 最小値を返す | min(1, 5, 3) | 1 |
pow() | べき乗(演算子 ** と同じ) | pow(2, 3) | 8 |
sqrt() | 平方根 | sqrt(16) | 4 |
fmod() | 剰余(小数にも対応) | fmod(5.7, 1.3) | 0.5 |
intdiv() | 整数の商を返す | intdiv(7, 3) | 2 |
rand() | 乱数を生成(推奨は random_int() ) | rand(1, 10) | 1〜10の整数 |
mt_rand() | 高速乱数生成(推奨) | mt_rand(1, 10) | 1〜10の整数 |
random_int() | 暗号論的に安全な乱数 | random_int(1, 10) | 1〜10の整数 |
pi() | 円周率 π を返す | pi() | 3.1415926535… |
deg2rad() | 度をラジアンに変換 | deg2rad(180) | 3.14159… |
rad2deg() | ラジアンを度に変換 | rad2deg(pi()) | 180 |
💡 学習のヒント
round()
は小数点以下の桁数も指定可能 →round(3.14159, 2)
→3.14
intdiv()
は「整数の割り算」なので小数点が出ない → SQLのDIV
と同じ感覚で使える- 乱数は セキュリティ用途なら
random_int()
を選ぶのがベスト
おまけ2:PHP 数学関数(フルコンプリート版)
1. 丸め・切り捨て/切り上げ系
関数 | 説明 | 使用例 | 結果 |
---|---|---|---|
abs() | 絶対値を返す | abs(-5) | 5 |
ceil() | 小数点を切り上げ | ceil(4.2) | 5 |
floor() | 小数点を切り捨て | floor(4.8) | 4 |
round() | 四捨五入(小数点の桁数指定可能) | round(3.14159, 2) | 3.14 |
2. 最大値・最小値・累乗
関数 | 説明 | 使用例 | 結果 |
---|---|---|---|
max() | 最大値を返す | max(1, 5, 3) | 5 |
min() | 最小値を返す | min(1, 5, 3) | 1 |
pow() | べき乗(** と同等) | pow(2, 3) | 8 |
sqrt() | 平方根を返す | sqrt(16) | 4 |
fmod() | 浮動小数点の剰余 | fmod(5.7, 1.3) | 0.5 |
intdiv() | 整数の商を返す | intdiv(7, 3) | 2 |
3. 乱数生成
関数 | 説明 | 使用例 | 結果 |
---|---|---|---|
rand() | 乱数を生成(非推奨、互換用) | rand(1, 10) | 1〜10 の整数 |
mt_rand() | 高速乱数生成(推奨) | mt_rand(1, 10) | 1〜10 の整数 |
random_int() | 暗号論的に安全な乱数 | random_int(1, 10) | 1〜10 の整数 |
4. 定数・角度変換
関数 | 説明 | 使用例 | 結果 |
---|---|---|---|
pi() | 円周率 π を返す | pi() | 3.1415926535… |
deg2rad() | 度をラジアンに変換 | deg2rad(180) | 3.14159… |
rad2deg() | ラジアンを度に変換 | rad2deg(pi()) | 180 |
5. 三角関数
関数 | 説明 | 使用例 | 結果 |
---|---|---|---|
sin() | サイン(正弦) | sin(pi()/2) | 1 |
cos() | コサイン(余弦) | cos(0) | 1 |
tan() | タンジェント(正接) | tan(pi()/4) | 1 |
asin() | 逆サイン | asin(1) | 1.5707… (π/2) |
acos() | 逆コサイン | acos(1) | 0 |
atan() | 逆タンジェント | atan(1) | 0.7853… (π/4) |
atan2() | Y/X のアークタンジェント(第1〜4象限対応) | atan2(1,1) | 0.7853… (π/4) |
6. 指数・対数関数
関数 | 説明 | 使用例 | 結果 |
---|---|---|---|
exp() | e のべき乗 | exp(1) | 2.718… |
expm1() | exp(x) - 1 を高精度で計算 | expm1(1) | 1.718… |
log() | 自然対数(底 e) | log(exp(1)) | 1 |
log10() | 底10の対数 | log10(1000) | 3 |
log1p() | log(1 + x) を高精度で計算 | log1p(0.5) | 0.405… |
💡 学習のコツ
- 三角関数は ラジアン単位(角度で使いたいなら
deg2rad()
とセットで) atan2(y, x)
はグラフ座標で角度を求めるときに便利expm1()
やlog1p()
は 誤差が出やすい小数計算で役立つ
created by Rinker
¥3,740
(2025/10/10 10:57:58時点 楽天市場調べ-詳細)
created by Rinker
¥3,938
(2025/10/10 10:57:58時点 楽天市場調べ-詳細)
created by Rinker
¥4,290
(2025/10/10 10:57:59時点 楽天市場調べ-詳細)