必見! [PHP入門] 代数演算子を分かりやすく解説!

数値の足し算、引き算、掛け算、割り算を行う、数値を変数に代入する、文字列を連結するなどデータに対して、何か処理を行うことを演算と呼びます。

また、スクリプトの中でデータに対して行う演算の種類を決める記号のことを演算子と呼びます。

ここでは演算子とは何か、代数演算子とは何か、代数演算子を利用したサンプルプログラムを見ていきます。

1.演算子とは

代数演算子について解説していく前に演算子とは何かを解説していきます。

演算子とは?

演算子とは変数やリテラルに対して行う演算の種類を決める記号のことです。

演算子の例として、

  • 数値を足し算するための「+」演算子
  • 数値を引き算するための「-」演算子
  • 数値を掛け算するための「×」演算子
  • 数値を割り算するための「÷」演算子

などが挙げられます。

演算子というと上記のような数値の足し算、引き算、掛け算、割り算を思い浮かべる方が多いかと思いますが、PHPは上記以外にも演算子が存在しています。

例えば、変数の比較、文字列の結合、コンピューター独自のビット処理など様々な演算子が用意されています。

ここでは詳しく解説しませんが、演算子の種類は以下のように存在しています。

また、演算子によって処理される変数やデータのことを被演算子と呼びます。

例えば「6-4」という足し算があった場合、「-」が演算子、「6」と「4」が被演算子となります。




2.代数演算子

代数演算子とは数値の足し算、引き算、掛け算、割り算などの四則演算時に使用する演算子のことです。

主な代数演算子は以下の通りです。

演算子 内容
+ 足し算 9+1⇒10
引き算 9-1⇒8
* 掛け算 9*1⇒9
/ 割り算 9/1⇒9
% 余り 3%2⇒1
** 累乗 3**3⇒27
++ インクリメント(1足す) $a++⇒$a=$a+1
デクリメント(1引く) $a–⇒$a=$a-1

上記のように代数演算子は直感的に分かりやすくなっています。




3.文字列の演算

上記で代数演算子を紹介しましたが、数値だけではありません。

文字列でも演算することができます。

以下は文字列型「10」と文字列型「20」の演算です。

上記はシングルクウォートで10と20が囲まれているので被演算子の10と20は文字列型の値となります。

しかし、PHPは暗黙的に文字列型ではなく、数値型と解釈して演算しています。

その結果、30となります。

以下は文字列型「10」と文字列型「a20」の演算です。

上記はシングルクウォートで10とa20が囲まれているので被演算子の10とa20は文字列型の値となります。

PHPはa20のように文字が先にある場合、数値型と解釈できず、a20を0と認識しました。

その結果、10となります。

以下は文字列型「10」と文字列型「1.2e1」の演算です。

上記はシングルクウォートで10と1.2e1が囲まれているので被演算子の10と1.2e1は文字列型の値となります。

PHPは1.2e1を指数表現とみなし、数値型として解釈しました。

その結果、22となります。




4.インクリメントとデクリメント

インクリメント(++)は被演算子に1を足すための演算子です。

例えば、「$a++」と「$a=$a+1」は同じ意味を持っています。

一方、デクリメント(–)は被演算子に1を引くための演算子です。

例えば、「$a–」と「$a=$a-1」は同じ意味を持っています。

上記は直感的に意味を理解することができますが、「++」や「–」を利用する時、注意しなければいけない点があります。

それは「++」や「–」を被演算子の前に置くか後に置くかで値が異なってくる点です。

具体的にどのように異なってくるのかを見ていきましょう。

以下は「++」を被演算子の前に置いた場合です。

このように「++」を被演算子の前に置くことを前置演算と呼びます。

上記は「++」を被演算子の前に置くと、先に演算してから値を代入することになります。

その結果、21となります。

次に「++」を被演算子の後に置いた場合を見ていきましょう。

このように「++」を被演算子の後に置くことを後置演算と呼びます。

上記は「++」を被演算子の後に置くと、先に$bに代入してから演算することになるので結果は$aの値と同じになります。

その結果、20となります。

このように前置演算と後置演算で結果が異なるので、注意が必要です。




5.「+」を利用した配列結合

演算子「+」を利用して、配列結合を行うことができます。

以下が演算子「+」を利用した配列結合です。

実行結果は以下の通りになります。

加算演算子を利用して配列を結合する場合、左の配列に存在しない要素を右の配列から左の配列に追加しています。

つまり、右の配列に左の配列と同じキーがあった場合、その値は反映されません。

そのため、変数$data2のキー「佐藤太郎」が変数$data1と重複しているので、変数$data2の値は反映されません。

今回、同じキーがなかったため、すべての値が反映されました。




6.PHPをもっと学びたい方へ

最後まで読んで頂きまして、ありがとうございます。

PHPをもっと学びたいという方はいないでしょうか?

上記のように考えている方にオススメの教材があります。

確かな力が身につくPHP「超」入門

この本ではPHPの基礎構文だけでなく、商品管理システムを作りながら、PHPをより実践的に学ぶことができます。

そのため、PHPを一通り学んだ方にオススメできる一冊です。

是非、挑戦してみてはいかがでしょうか?

以下の記事でPHPを学ぶことができるオススメの本をまとめていますので、よかったらご覧になって下さい。

[初心者~中級者向け] PHPを学ぶことができるおすすめの本

Udemy

UdemyではPHPを学ぶことができる講座を多数取り扱っています。

以下の記事でPHPを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

[2021年最新版] Udemy(ユーデミー) おすすめのPHP講座

TechAcademy

TechAcademy [テックアカデミー]ではPHPを学ぶことができます。

無料体験も行っているので是非、体験してみてはいかがでしょうか?

TechAcademyについてまとめた記事もありますので、よかったらご覧になって下さい。

いくら? 悪評は? TechAcademy(テックアカデミー)とは? 口コミもまとめてみました!




7.ポイント

ポイント
  • 演算子とは変数やリテラルに対して行う演算の種類を決める記号のことです
  • 代数演算子とは数値の足し算、引き算、掛け算、割り算などの四則演算時に使用する演算子のことです
  • インクリメント(++)とデクリメント(–)を被演算子の前後に置くかで結果が異なるので注意が必要です

コメントを残す

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