演算とは
変数を作成してプログラムでデータ加工や計算をすることを演算といいます。どのような演算をするかを決めるための記号を演算子といい、データ型に応じて違います。また演算子でない方を 被演算子(オペランド) といいます。
数値の計算
「1 + 2」では「1」「2」がオペランド、「+」が演算子です。
演算子
演算子の種類は「 + 」「 - 」「 * 」「 / 」「 % 」があります。
オペランド | 処理 | 演算 | 結果 |
---|---|---|---|
+ | 足し算 | 3 + 2 | 5 |
- | 引き算 | 3 - 2 | 1 |
* | 掛け算 | 3 * 2 | 6 |
/ | 割り算 | 3 / 2 | 1.5 |
% | 余り | 3 % 2 | 1 |
二項演算
二項演算は四則演算(加減乗除)などで2つの値から新たな値を作成することをいいます。 プログラムでは変数や値が 2つ登場する演算のことをいいます。
数値の二項演算
変数「answer」を定義して「1 + 2」を代入します。
プログラムは右辺から処理(再代入)
プログラム処理は右辺から処理するルールになっています。次の例は、右辺の「$price + 30」(130 + 30)を処理してから、左辺の「$price」に再代入します。
複合演算を使う
いろいろな四則演算
四則演算の複合演算を使って、変数を確かめてみましょう。
HTML表示
変数「$price」をHTMLに表示してみましょう。
結果
文字列型変数の連結
文字列に変換される
文字列と変数は、.(ピリオド) で連結しますが、変数が数値でも文字列に変換されます。
リテラル式
リテラル式で記述すると以下のようになります。
HTMLで表示
HTMLにそれぞれの変数を表示してみましょう。
シングルクォーテーション「 ' 」は注意が必要
「 ' 」(シングルクォーテーション)で変数を囲んでしまうと、記述したまま表示されるので注意しましょう。
HTMLの結果
複合演算
複合演算は二項演算の計算を省略して書くことができます。「 = 」の前に演算子を記述して値を代入します。
二項演算
複合演算
文字列の ' と " の使い方に正解はなく、ケースバイケースで使い分けましょう。
文字列の複合演算
文字列でも複合演算 .= で連結できます。
単項演算
単項演算は1つの変数に対して演算処理し、その結果を変数に再代入します。
演算子 | 処理 | 演算 | 結果 |
---|---|---|---|
++ | インクリメント | 変数++ | 変数を1増加 |
-- | デクリメント | 変数-- | 変数を1減少 |
単項演算の例
HTML部分
HTMLに $amount を表示してみましょう。
論理演算
論理演算は、比較演算子で左の値と右の値を比較します。結果は論理型(bool型)で左辺に代入できます。
比較演算子
比較演算子は左の値と右の値を比較して、bool型(trueかfalse)を判定し、条件式の分岐で利用します。下の表は比較演算子で一致すれば true を返します。
比較演算子 | 処理 | 判別 |
---|---|---|
== | A == B | A と B が等しい |
!= | A != B | A と B が等しくない |
> | A > B | A が B より大きい |
< | A < B | A が B より小さい |
>= | A >= B | A が B 以上 |
<= | A <= B | A が B 以下 |
=== | A === B | A と B が等しい(データ型も含む) |
!== | A !== B | A と B が等しくない(データ型も含む) |
論理演算の例1
結果
同値
データ型と値が同じことを同値といい、同値の演算子は === です。 また、同値でない演算子は !== で記述します。PHPでは、"20" (string 型) は 20 (int 型) として自動処理するため、意図しないバグが発生する可能性があるので注意しましょう。
結果
三項演算
三項演算は比較演算の結果で分岐して代入します。三項演算は「 ? 」と 「 : 」 で記述します。
三項演算は最初は難しいですが、理解できると、のちに学習する if や switch など使わずに処理できます。
三項演算の例
Null合体演算
Null合体演算 は、チェック値があればその値、NULLの場合、??** の後の値が返ります。
Null合体演算の例
結果
エルビス演算子
エルビス演算子は、Null合体演算と似ていますが、チェック値がNULL以外に 「0」や「false」のときも空判定されます。
エルビス演算子の例
結果
演習
問題1
以下の変数を使って「コーヒーの価格は120円です。」と文字列で表示してみましょう。
問題2
以下の計算で、$hp がいくつになるか確認してみましょう。
問題3
- ミネラルウォーター:88円 x 5個
- コーヒー:120円 x 3個
- 割引:10%
の合計金額を計算してみましょう。
問題4
全教科の平均点を変数で計算してみましょう。
- 国語:76点
- 数学:83点
- 理科:69点
- 社会:91点
問題5
++$number と $number++ の違いを調べてみましょう。