PHPの演算子の一覧と解説

前回はPHPの変数の定義について説明しました。

変数を定義したらそれを元に値を計算したり比較したりし、プログラムを組み立てていきます。

イメージはこれも中学校の数学です。

かなり理系脳な話になるので、数学が苦手な方はちょっと難しい話になるかもしれません。

でも慣れれば中学の連立方程式より簡単です。

算術演算子

算術演算子は、足し算など普通の計算を行う演算子です。

プログラムには文字列の場合もあるので少し特殊です。

足し算(+)

足し算を行う演算子です。

PHPの場合、文字列に数値が含まれている場合は数値として計算します。

これはPHPの特殊な有り難迷惑な機能です。

使えるときは便利ですが、バグを増やさないように多様しないことをお勧めします。

文字列結合(.)

上の計算では、$a には11が入ります。

PHPの場合、文字列の場合でも値が数値の場合は正常に計算が出来てしまいます。

ではその場合文字列の結合はどのように行うのか?

上の計算を行った結果が”83″になるようにするにはどのように書けばよいのか。

文字列の結合には . (ドット)を使います。

引き算(-)

引き算を行う演算子です。

引き算の場合も文字列の”1″から 1 を引いた場合は0になります。

掛け算(*)

掛け算を行う演算子です。

× ではなく * を使います。

こちらも足し算同様で、文字列の掛け算はちゃんと掛け算してくれます。

けど文字列の計算はあまり使わないほうが・・・。

割り算(/)

割り算を行う演算子です。

剰余算(%)

これは余りを求める演算子です。

これはめったに使いませんが、使う場面が出てきたときには非常に便利です。

代入演算子

左辺に変数を書き、= で繋ぎ、右辺に左辺へ代入する値を計算します。

この = が代入演算子です。

プログラミングには下記のような代入演算子もあり非常に便利です。

2行目では $a = $a + 1; と同じ計算がされます。

足し算以外でも使えます。

文字列の場合もドットで文字列を連結することが出来ます。

となります。

単項演算子

インクリメント

インクリメントは変数の値に 1 を足すものです。

ループ処理などで、何回ループしたかをカウントしたりするのに便利です。

$a++ (接尾辞インクリメント)は、その行の処理内で後に計算がされます。

++$a (接頭辞インクリメント)は、その行の処理内で先に計算がされます。

ただ、下のコードのように行を分けてしまえば同じ結果になります。

デクリメント

デクリメントは変数の値に 1 を引くものです。

ループ処理などで、予めループ回数を制限し0になったら処理を停止する場合などに使えます。

$a– (接尾辞デクリメント)は、その行の処理内で後に計算がされます。

–$a (接頭辞デクリメント)は、その行の処理内で先に計算がされます。

ただ、下のコードのように行を分けてしまえば同じ結果になります。

比較演算子

比較演算子は二つの値を比較するために使います。

== (等しい)

2つの値が同じかどうかを判定し、同じならば true を返します。

> (より大きい)

2つの数値の大きさを比較し、左辺の値が大きければ true を返します。

右辺のほうが大きい場合、同じ値の場合は false を返します。

>= (より大きいか等しい)

2つの数値の大きさを比較し、左辺の値が大きければ true を返します。

同じ値の場合は true を返します。

右辺のほうが大きい場合は false を返します。

!= (等しくない)

2つの値が同じかどうかを判定し、異なれば true を返します。

< (より小さい)

2つの数値の大きさを比較し、右辺の値が大きければ true を返します。

左辺のほうが大きい場合、同じ値の場合は false を返します。

<= (より小さいか等しい)

2つの数値の大きさを比較し、右辺の値が大きければ true を返します。

同じ値の場合は true を返します。

左辺のほうが大きい場合は false を返します。

===(値も型も等しい)

値だけでなく型も比較する演算子です。

上の例のように文字列の”123″と数値の123は別物として扱われます。

ちなみに == で判定すると true になります。

!==(値もしくは型が異なる)

値だけでなく型も比較する演算子です。

=== の否定形です。

ちなみに != で判定すると false になります。

instanceof(型演算子)

これは型を判定する演算子です。

文字列で日付っぽい値を用意してもオブジェクトの型が違うので別物になります。

論理演算子

&& (AND)

事象Aと事象Bがあった場合、AとBが重なる部分だけが true となります。

サンプルコードの中だと両方 true のものだけが true になります。

 

例えば、$age (年齢)と、$carLicense (車の免許を持ってる場合は true) があったとします。

この場合 $age >= 18 と $carLicense が両方 true で無いと車を運転してはいけません。となります。

|| (OR)

事象Aと事象Bがあった場合、AもしくはBが当てはまる場合 true となります。

! (NOT)

事象Aがあった場合、事象Aで無い場合が true になります。

!false と書くなら最初から true だけ!にしたほうがいいですが、 !false は事象Aに当てはまる場合になります。

まとめ

比較演算子はプログラムを書く上で必須です。

慣れてきても「あれ?あれ?」と思うことは多々ありますが、今回紹介したものはしっかり覚えておく必要があります。

PHPの場合は型がちょっと曖昧な気がします。

特に文字列で数値を扱う場合には注意しましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA