PHP レッスン — レッスン 6 — PHP 演算子
私たちはすでに文字列型と数値型の変数について理解し、数値型の変数にはいくつかの種類があることを学びました。整数型、小数型、論理型です。今は、これらの変数を操作する方法、変数を変更する、何かを追加するなどの作業を学ぶ時が来たと思います。
下の表には、さまざまな PHP 演算子の使用方法が示されています。
PHP の算術演算子
| PHP 演算子 | 説明 | 例 | 結果 |
|---|---|---|---|
| + | 加算 | x=2 x+2 |
4 |
| - | 減算 | x=2 5-x |
3 |
| * | 乗算 | x=4 x*5 |
20 |
| / | 除算 | 15/5 5/2 |
3 2.5 |
| % | 剰余(割った余り) | 5%2 10%8 10%2 |
1 2 0 |
| ++ | インクリメント(1 を加える) | x=5 x++ |
x=6 |
| -- | デクリメント(1 を減らす) | x=5 x-- |
x=4 |
PHP での加算
例を見ながら算術演算子を理解しましょう。
<?php
$x = 1;
$y = 2;
$z = $x + $y;
print $z;
?>
上の例の結果は 3 になります。特に説明する必要もなく、すべてかなり明白だと思います。
PHP での減算
<?php
$x = 2;
$y = 6;
$z = $y - $x;
print $z;
?>
上のコードの結果は 4 になります。減算も同様に非常に分かりやすいと思います。
PHP での乗算
<?php
$x = 3;
$y = 4;
$z = $x * $y;
print $z;
?>
コードを実行した結果は 12 になります。数字がどんどん大きくなり、複雑になってくるのを感じ始めていますね。
PHP での除算
<?php
$x = 26;
$y = 2;
$z = $x / $y;
print $z;
?>
答えは 13 です。今のところ、すべてが非常にシンプルで明白に思えます。それでは、日常生活ではあまり使わないものに進みましょう。
PHP での剰余(割った余り)(mod)
$x = 10;
$y = $x % 3;
print $y;
結果は 1 になります。これは何を意味するのかというと、割り算をするときに、整数部分を取り出して割り、割った余りをまた割り、割り切れない余りが割る数より小さくなるまで繰り返します。その割り切れない余りが % 演算子の結果、つまり剰余です。実際の計算でこれをどのように使用できるか見てみましょう。
<?php
$time = time(); // Unix 紀元の開始からの現在の時刻
$hours = $time % 86400; // 現在の時間を秒単位で取得
$hours = floor($hours / 3600); // 時間の整数部分を取得
$minutes = $time % 3600; // 現在の分を秒単位で取得
$minutes = floor($minutes / 60); // 分の整数部分のみを取得
$seconds = $time % 60; // 秒の数を決定
print $hours . ':' . $minutes . ':' . $seconds; // 結果を出力
?>
この例は確かにどこで使用するとは言えませんが、このようにしてサーバーの時刻を出力することができます。floor() 関数は小数部分を切り落とし、整数部分を返します。例えば、数値が 3.7 の場合、floor() 関数は 3 を返します。つまり、四捨五入とは異なり、整数部分に何も加わることはありません。
Unix 時間または Unix エポック(Unix epoch、Unix time、POSIX time、Unix timestamp)とは何ですか?
Unix 時間または POSIX 時間(英語:Unix time)は、Unix およびその他の POSIX 互換オペレーティングシステムで採用されている時刻のエンコード方法です。
カウント開始のモーメントは、1969 年 12 月 31 日から 1970 年 1 月 1 日への真夜中(UTC)と見なされ、この時点からの時間は「Unix エラ」(英語:Unix Epoch)と呼ばれます。
Unix 時間は UTC と同期され、特に Unix うるう秒を宣言する際に、対応する秒数が繰り返されます。
秒数として時間を保存する方法は、日付の比較(秒単位の精度で)および日付の保存に非常に便利です。必要に応じて、任意の読みやすい形式に変換できます。この形式の日付と時刻もほぼメモリを消費しません(マシンワードのサイズに応じて 4 または 8 バイト)。したがって、大量の日付を保存するために合理的に使用できます。パフォーマンスの低下は、月数などの日付要素に非常に頻繁にアクセスする場合に現れる可能性があります。しかし、ほとんどの場合、個々のフィールドのセットではなく、1 つの値として時間を保存する方がより効率的です。
PHP でのインクリメント(1 を加える)
ここはかなり単純です。
<?php
$x = 1;
$y = 1;
$x++;
$y = $y + 1;
print 'x=' . $x . '<br />';
print 'y=' . $y;
?>
x と y の計算結果は同じになり、両方とも 2 になります。この構文は C++ 言語から採用されています。
PHP でのデクリメント(1 を減らす)
<?php
$x = 4;
$y = 4;
$x--;
$y = $y - 1;
print 'x=' . $x . '<br />';
print 'y=' . $y;
?>
ここもとても簡単です。2 つのマイナス記号を置くと、変数から 1 が減ります。
PHP の代入演算子
| PHP 演算子 | 例 | 相当 |
|---|---|---|
| = | x=y | x=y |
| += | x+=y | x=x+y |
| -= | x-=y | x=x-y |
| *= | x*=y | x=x*y |
| /= | x/=y | x=x/y |
| .= | x.=y | x=x.y |
| %= | x%=y | x=x%y |
これは算術演算を記述するための別の方法です。例を示しませんが、その使用方法は理解できると思います。
PHP の比較演算子
| PHP 演算子 | 説明 | 例 |
|---|---|---|
| == | 等しい | 5==8 は false を返す |
| != | 等しくない | 5!=8 は true を返す |
| <> | 等しくない | 5<>8 は true を返す |
| > | より大きい | 5>8 は false を返す |
| < | より小さい | 5<8 は true を返す |
| >= | 以上 | 5>=8 は false を返す |
| <= | 以下 | 5<=8 は true を返す |
比較演算子の詳細については、条件演算子とループ演算子を学習するときに詳しく説明します。
PHP の論理演算子
| PHP 演算子 | 説明 | 例 |
|---|---|---|
| && | かつ(AND) | x=6 y=3 (x < 10 && y > 1)は true を返す |
| || | または(OR) | x=6 y=3 (x==5 || y==5)は false を返す |
| ! | ない(NOT) | x=6 y=3 !(x==y)は true を返す |