プログラムの中で処理を表現するために、演算子を使用します。次のような種類があります。
値を計算します。
演算子 | 意味 | 使用例 |
---|---|---|
+ | 一方の数値を他方の数値に足す | $num1 + $num2 |
- | 一方の数値を他方の数値から引く | $num1 – $num2 |
- | 数値の符号を反転させる | -$num1 |
* | 一方の数値に他方の数値を掛ける | $num1 * $num2 |
/ | 一方の数値を他方の数値で割る | $num1 / $num2 |
% | 一方の数値を他方の数値で割った時の余りを求める | $num1 % $num2 |
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHP ファイル |
---|---|
ファイル名 | arithmetictest.php |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
○ 解説
10行目で変数$num1に格納している値と、変数$num2に格納している値を加算しています。その後、Webブラウザーに書き出しています。11~15行目も同様に変数の値を計算して表示しています。
計算結果を代入します。
演算子 | 意味 | 使用例 |
---|---|---|
= | データを変数に代入する | $num = 2 |
*= | 変数に格納されているデータと乗算し、その結果を変数に代入する | $num *= 2 |
/= | 変数に格納されているデータと除算し、その結果を変数に代入する | $num /= 2 |
%= | 変数に格納されているデータと除算し、その余りを変数に代入する | $num %= 2 |
+= | 変数に格納されているデータと加算し、その結果を変数に代入する | $num += 2 |
-= | 変数に格納されているデータを減算し、その結果を変数に代入する | $num -= 2 |
.= | 変数に格納されているデータと文字列を連結し、その結果を変数に代入する | $str .= ‘文字’ |
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHP ファイル |
---|---|
ファイル名 | assignmenttest.php |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
○ 解説
6行目は変数$numに値10を格納します。8行目は先ほど格納した10に2を乗算して再び変数$numに格納します。10行目は先ほど格納した20を2で除算して変数$numに格納します。12行目は先ほど格納した10に3の剰余を変数$numに格納します。14行目は先ほど格納した1に2を加算して変数$numに格納します。16行目は先ほど格納した3を1で減算して変数$numに格納します。
18行目は変数$strに文字列”メロンが“を格納しています。19行目で変数$strに格納されている”メロンが”に”食べたい。”を文字列結合して、再び変数$strに格納しました。
二つの値を比較します。
演算子 | 意味 | 使用例 |
---|---|---|
== | 2つのデータが等しいことを確認する | $num1 == $num2 |
=== | 2つのデータ、型ともに等しいことを確認する | $num1 === $num2 |
!= | 2つのデータが等しくないことを確認する | $num1 != $num2 |
< | 一方のデータが他方のデータより小さいことを確認する | $num1 < $num2 |
> | 一方のデータが他方のデータより大きいことを確認する | $num1 > $num2 |
<= | 一方のデータが他方のデータ以下であることを確認する | $num1 <= $num2 |
>= | 一方のデータが他方のデータ以上であることを確認する | $num1 >= $num2 |
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHP ファイル |
---|---|
ファイル名 | comparisontest.php |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
○ 解説
11行目は変数$num1の値と変数$strnumの値が等しいかどうかを計算します。数値か数字にかかわらず、10なので等しいと計算され、trueが出力されます。var_export()は関数で、カッコの中に指定した式等を文字列として出力してくれます。今回は判定結果を文字列に変換する際に使用しています。変換した計算結果の文字列を変数$ansに格納して、次の行で表示しています。
13行目は変数$num1の値と変数$strnumの値が数値としてもデータ型として等しいかどうかを計算します。数値としては等しいですが、データ型としては等しくないのでfalseが出力されます。15行目は変数$num1と変数$num2が等しくないかどうかを計算します。17行目も同様です。
19行目では変数$num1の値が変数$num2の値がより小さいかどうかを判断します。小さくないのでfalseが出力されます。21行目は変数$num1の値が変数$num2の値より大きいかどうかを判断します。大きいのでtrueが出力されます。23行目は変数$num1の値が変数$num2の値以下かどうかを判断します。以下ではないのでfalseが出力されます。25行目は変数$num1の値が変数$num2の値以上かどうかを判断します。以上なのでtrueが出力されます。
論理演算をしてboolean値を算出します。
演算子 | 意味 | 使用例 |
---|---|---|
and && |
2つのブール値の論理積を求める |
$num1 > 1 and $num1 < 1 $num1 > 1 && $num1 < 1 |
or || |
2つのブール値の論理和を求める |
$num1 > 1 or $num1 < 1 $num1 > 1 || $num1 < 1 |
xor | 2つのブール値の排他的論理和を求める | $num1 == 10 xor $num2 == 5 |
! | ブール値の論理否定を求める | !($num1 < $num2) |
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHP ファイル |
---|---|
ファイル名 | logicaltest.php |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
○ 解説
10行目は変数$num1と変数$num2を比較します。今回は「10 < 5」となるので条件としてはfalseです。しかし、「!」が付いているので否定として扱われ、「falseではない」つまりtrueと出力されます。
12行目は2つの条件判断の結果をもとに判断します。今回は「$num1 > 0」で「true」、「$num2 < 10」でfalseとなります。この2つの判断の結果を「true && false」のようにさらに判断します。結果はfalseになります。論理積は次のような結果が出力されます。2つの条件がtrueの場合のみtrueとなります。
条件1 | 条件2 | 出力 |
---|---|---|
false | false | false |
false | true | false |
true | false | false |
true | true | true |
14行目は2つの条件判断の結果をもとに判断します。今回は「$num1 > 0」でtrue、「$num2 < 0」でfalseとなります。この2つの判断の結果を「true || false」のようにさらに判断します。結果はtrueになります。論理和は次のような結果が出力されます。2つの条件のうち少なくともどちらか一方がtrueであればtrueになります。
条件1 | 条件2 | 出力 |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | true |
16行目は2つの条件判断の結果をもとに判断します。今回は「$num1 == 10」でtrue、「$num2 == 5」でtrueとなります。この2つの判断の結果を「true xor true」のようにさらに判断します。結果はfalseになります。排他的論理和は次のような結果が出力されます。2つの条件の結果が違えばtrueになります。
条件1 | 条件2 | 出力 |
---|---|---|
false | false | false |
false | true | true |
true | false | true |
true | true | false |
論理演算をしてbool値を算出し、2つの値のいずれかを返します。
演算子 | 意味 | 使用例 |
---|---|---|
?: | 論理演算を処理し、値を返す | ($num1 < 0) ? "-" : "+" |
計算結果を代入します。
演算子 | 意味 | 使用例 |
---|---|---|
& | 両方にセットされているビットがセットされる | $num1 & $num2 |
| | とちらかにセットされているビットがセットされる | $num1 | $num2 |
^ | どちらかにセットされており、両方にセットされていないビットがセットされる | $num1 ^ $num2 |
~ | セットされているビットはセットせず、セットされていないビットはセットする | ~$num |
<< | セットされているビット・パターンを左にシフトする | $num << 2 |
>> | セットされているビット・パターンを右にセットする | $num >> 2 |
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHP ファイル |
---|---|
ファイル名 | bittest.php |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
○ 解説(整数値を8bitとして解説します)
11行目は変数$num1と変数$num2のビット積を計算します。「00001010」と「00000101」のビット列を論理積演算するため、「00000000」となり、10進数で0となります。13行目は変数$num1と変数$num2のビット和を計算します。「00001010」と「00000101」のビット列を論理和演算するため、「00001111」となり、10進数で15となります。
15行目は変数$num1の否定を計算します。「00001010」のビット列を論理否定演算するため、「11110101」となり、10進数で-11となります。 17行目は変数$num1と変数$num3の排他的論理和を計算します。「00001010」と「00000111」のビット列を排他的論理和演算するため、「00001101」となり、10進数で13となります。
19行目は変数$num2を左にシフトします。「00000101」のビット列を左に2ビット分シフトするため、「00010100」となり、10進数で20となります。左にシフトするたびに10進数での2倍の計算をします。 21行目は変数$num1を右にシフトします。「00001010」のビット列を右に2ビット分シフトするため、「00000010」となり、10進数で2となります。右にシフトするたびに10進数での2で割る計算をします。
文字列同士を結合します。数値と結合する場合も文字列結合になります。
演算子 | 意味 | 使用例 |
---|---|---|
. | 文字列を結合する | 'abc' . 'def' |
○ ファイル
次のようにファイルを作成してください。
ファイルの種類 | PHP ファイル |
---|---|
ファイル名 | stringoperatortest.php |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
○ 解説
9行目は文字列「わたしは、」と変数$fruitsを結合することで、「わたしは、りんご」となります。さらにその文字列と、「がすきです。」を結合し、「わたしは、りんごがすきです。」と表示されます。