独習PHP」を元に、要約メモしておきたいと思います。

代数演算子

演算子 概要
+ ふたつの数値の和 $x + $y
ふたつの数値の差 $x – $y
* ふたつの数値の積 $x * $y
/ ふたつの数値の商 $x / $y
% ふたつの数値の割り算を行い、その余り $x % $y
++ 前置加算(代入後に加算) $i++
++ 後置加算(代入前に加算) ++$i
前置減算(代入後に減算) $i–
後置減算(代入前に減算) –$i

++は指定された変数の値を増減するための演算子で、インクリメント(加算子)やデクリメント(減算子)とも言う。例えば次の2つの式は意味的に等価。

$x=$X+1;
$x++;

前置演算と後置演算は、加算(減算)した結果を代入してから値を返すか、値を返してから加算(減算)を行うかという点で異なる。

<?php
$x=1;
print ($x++.'<br />');
print ($x.'<br />');
print (++$x.'<br />');
print ($x.'<br />');
?>

1 2 3 3

代入演算子

変数への代入を行うための演算子。代入演算子には、代数演算子と合わせた機能を提供する複合代入演算子も含まれる。

演算子 概要 用例
= 値を変数などに代入する $x=10
+= 左辺の値に右辺の値を加えたものを、左辺に代入する $x+=10、$x=$x+10
-= 左辺の値から右辺の値を引いたものを、左辺に代入する $x-=10、$x=$x-10
*= 左辺の値に右辺の値を掛けたものを、左辺に代入する $x*=10、$x=$x*10
/= 左辺の値を右辺の値で割ったものを、左辺に代入する $x/=10、$x=$x/10
%= 左辺の値を右辺の値を割った余りを、左辺に代入する $x%=10、$x=$x%10
.= 左辺の値に右辺の値を連結した文字列を、左辺に代入する $x.=”A”、$x=$x.”A”

比較演算子

左辺と右辺の値を比較し、評価結果をTRUE/FALSEで返す。if、while、do…while命令の条件式で使用する。

演算子 概要
== 左辺と右辺が等しい場合にTRUEを返す $x==1
=== 左辺と右辺が等しく、かつ同じデータ型の場合にTRUEを返す

$flag===TRUE

!= 左辺と右辺が等しくない場合にTRUEを返す $x!=10
!== 左辺と右辺が等しくない、または同じデータ型でない場合にTRUEを返す $flag!==TRUE
< 左辺が右辺より小さい場合にTRUEを返す $x<10
> 左辺が右辺より大きい場合にTRUEを返す $x>10
<= 左辺が右辺以下のときにTRUEを返す $x<=10
>= 左辺が右辺以上のときにTRUEを返す $x>=10
? (条件式)?(式1):(式2) 条件式がTRUEの場合は式1、FALSEの場合は式2を返す $x>10 ? “OK” : “NG”

?演算子は三項演算子とも呼ばれ、指定された条件式の真偽に応じて異なる式(値)を出力したい場合などに使用する。

論理演算子

複数の条件式を論理的に結合するための演算子。前項の比較演算子と組み合わせて使用するのが一般的。

演算子 概要
&&(and)

左式/右式と双方がTRUEの場合にTRUEを返す

$x==10 && $z==100
||(or) 左式/右式といずれかがTRUEの場合にTRUEを返す $x==1 || $x==2
xor 左式/右式いずれかがTRUEで、かつ双方ともTRUEではない場合にTRUEを返す $x==10 xor $x==100
!

式がFALSEである場合にTRUEを返す

!$flag

AND演算子(&とand)とOR演算子(||とor)がそれぞれ2つ用意されているのは、評価される際の優先順位が異なるため。

ビット演算子

ビット単位(整数を2進法で表したときの各桁)で論理演算を行うための演算子。

演算子 概要
& 左式/右式の双方でセットされているビットをセットする 10&1 → 1010&0001 → 0000 → 0
| 左式/右式のいずれかでセットされているビットをセットする 10|1 → 1010|0001 → 1011 → 11
^ 左式/右式のいずれかでセットされており、かつ、双方にセットされていないビットをセットする 10^1 → 1010^0001 → 1011 → 11
~ ビットを反転させる ~10 → ~1010 → 0101 → -11
<< ビットを左にシフトする 10<<1 → 1010<<1 → 10100 → 20
>> ビットを右にシフトする 10>>1 → 1010>>1 → 0101 → 5

その他の演算子

演算子 概要
. 文字列連結。左式と右式を連結する $memo.$title
@ 式の先頭に指定することでエラーメッセージを非表示にする @fopen(“sample.dat”)
` バッククォート(`)で囲んだブロックをシステムコマンドとして実行 `dir`

@演算子はエラー演算子とも言い、特定の命令の先頭に付加することで、その命令で発生したエラーメッセージの出力を抑制する。

<?php
print(1/0);
?>

Warming: Division by zero in ~atmark.php on line 2

除算を0で行うことは許されていないので警告メッセージが表示されるが、print命令の先頭に@演算子をつけることで、警告メッセージが抑制され、表示されなくなる。

<?php
@print(1/0);
?>

演算子の優先順位

優先順位 演算子
1 new
2 [
3 ! ~ ++ — (int) (double) (string) (array) (object) @
4 * / %
5 + – .
6 << >>
7 < <= > >=
8 == != === !==
9 &
10 ^
11 |
12 &&
13 ||
14 ? :
15 = += -= *= /= .= %= &= |= ^= ~= <<= >>=
16 print
17 and
18 xor
19 or
20 ,

最後までお読みいただきありがとうございます!よろしければフォローお願いします!

もしお役に立てる情報がありましたら、そのお気持ちを Bitcoin や PayPal で送金していただけると、とても嬉しく思います!

他にも、Amazonのほしい物リストからお選びいただくこともできます。

こちらの関連記事もあわせてどうぞ!

      【独習PHP】02_配列

      「独習PHP」を元に、要約メモしておきたいと思います。 配列 仕切りのある入れ物のこと。ひとつの変数に対してひとつの値を持つものをスカラー変数といい、配列のように複数の値を持つことができる入れ物のこ…

      【独習PHP】06_条件分岐

      「独習PHP」を元に、要約メモしておきたいと思います。 if命令 if命令はもしも〜だったら...さもなければ...という構文を作成する。 <?php $x=10; if ($x==10) {…

      【独習PHP】08_関数

      「独習PHP」を元に、要約メモしておきたいと思います。 関数とは、与えられた入力に基づいてなにかしらの結果を返す命令のことを言う。この入力のことを引数、出力のことを戻り値と呼ぶ。関数の基本的な構文は…

      【独習PHP】07_繰り返し処理

      「独習PHP」を元に、要約メモしておきたいと思います。 for命令 あらかじめ指定された回数だけ繰り返し処理を行うための命令。 <?php for ($i=1; $i<6; $i++) …

      【独習PHP】04_定数

      「独習PHP」を元に、要約メモしておきたいと思います。 変数は、その中身をプログラムの途中で変更/編集することが可能だが、定数は入れ物と中身がセットになっていて、途中で中身を変更できない入れ物。プロ…