※この記事は「2021年6月22日」に更新しました。
前回は、変数宣言と定数について、書きました。
今回は、演算子についてです。
数値の計算を行うときの +(プラス) や -(マイナス)も演算子です。
あと変数宣言のときに使った、以下のような処理。
$a = 100;
=(イコール)は、数学だと等しいという意味ですが、プログラミングの場合は代入を意味します。
この場合の =(イコール)も演算子です。
演算子
演算子について、説明していきます。
代数演算子
代数演算子は、四則演算などに使う演算子です。
$answer = $a + $b; // $a と $b を足す(その後、$answer に代入) $answer = $a - $b; // $a から $b を引く(その後、$answer に代入) $answer = $a * $b; // $a と $b を掛ける(その後、$answer に代入) $answer = $a / $b; // $a と $b を割る(その後、$answer に代入) $answer = $a % $b; // $a と $b を割った余り(その後、$answer に代入)
代入演算子(複合演算子)
初期化のときに使った =(イコール)などが代入演算子です。
ちなみに $a += $b といった書き方もできます。
これは $a = $a + $b と同じ意味です。
この += を複合演算子と言います。
- $a += $b → $a = $a + $b と同じ意味
- $a -= $b → $a = $a – $b と同じ意味
- $a *= $b → $a = $a * $b と同じ意味
- $a /= $b → $a = $a / $b と同じ意味
- $a %= $b → $a = $a % $b と同じ意味
比較演算子
条件分岐のときによく使う演算子です。
- == → 値が等しい(成立する場合 TRUE を返す)
- === → 値も型も等しい(成立する場合 TRUE を返す)
- =! → 等しくない(成立する場合 TRUE を返す)
- <> → 等しくない(成立する場合 TRUE を返す)
- < → より小さい(成立する場合 TRUE を返す)
- > → より大きい(成立する場合 TRUE を返す)
PHP のデータ型が厳密ではないというところから少々ややこしくなってます。
インクリメント演算子とデクリメント演算子
これは、他のプログラミング言語でもあるかと思います。
前置きと後置きがあり、演算を行うタイミングが異なります。
++$a は $a = $a + 1 と同じ意味です。
// 前置きインクリメント演算子(※1) $a = 1; $b = ++$a; // 後置きインクリメント演算子(※2) $a = 1; $b = $a++;
※1 の結果は、$a が 2、$b が 2 となります。
※2 の結果は、$a が 2、$b が 1 となります。
つまり $b に代入するタイミングが異なるわけです。
続いて、デクリメント演算子の例です。
// 前置きデクリメント演算子(※3) $a = 2; $b = --$a; // 後置きデクリメント演算子(※4) $a = 2; $b = $a--;
※3 の結果は、$a が 1、$b が 1 となります。
※4 の結果は、$a が 1、$b が 2 となります。
論理演算子
数学で習うものと同じです。
論理積や論理和といったものです。
結果は 論理型(boolean) で返します。
例えば、以下のような場合。
$a = TRUE; $b = FALSE;
$a and $b は、$a かつ $b となり、この場合は FALSE になります。
$a or $b は、$a または $b となり、この場合は TRUE になります。
!$a は、 $a の否定となり、この場合は FALSE になります。
文字列演算子
結合演算子 .(ピリオド)を使うと文字列同士を結合することができます。
$blog = "パソコンとタブレットを使いこなせ"; echo "あなたのブログのタイトルは、{$blog}です。";
あなたのブログのタイトルは、パソコンとタブレットを使いこなせです。
このように表示されます(変数 $blog も展開されます)。
ちなみにこの結合演算子も複合演算子として使えます。
$a .= $b は $a = $a . $b と同じというわけです。
あと echo の中身を “(ダブルクォーテーション)で囲みましたが、’(シングルクォーテーション)で囲むと変数が展開されません。
あなたのブログのタイトルは、{$blog}です。
このように表示されることになります。
最後に
今回は、演算子について、解説しました。
この記事では語りませんでしたが、演算子には優先順位というものがあります。
数学と同じで計算する(処理する)順番のようなものがあるのです。
しかし、ここの部分もやりながら覚えていけば良いかと個人的には思います。
あまり細かく覚えるのも面倒でしょう。
インクリメント演算子(デクリメント演算子)の前置きと後置きだけ理解しておきましょう。
次回は、配列についてです。
がんばっていきましょう。