「比較演算子」の使い方です。
比較演算子とは、左辺(左の値)と右辺(右の値)を比べて、正しければtrueを返す演算子です。
比較演算子には「==」「===」「!=」「!==」「<」「<=」「>」「>=」があります。
通常数学で「等しい」を指すイコール「=」はPHPでは代入演算子といい、
右辺を左辺に代入するという意味になりますので注意しましょう。
それでは1つずつ見て行きましょう。
==
「==」は左辺と右辺が等しい時にtrueを返します。
ちょっと変な例ですが、下記は5と5を比べて結果(true)を$xに代入する形になります。
<?php $x = 5 == 5; // var_dumpでtrueが入っているか確認します。 var_dump($x); /* 上記は「var_dump(5 == 5);」としても同じなので以降はこの形で結果を表示していきます。 */ ?>
» 実行結果
次に5と4を比べて結果を表示します。
<?php var_dump(5 == 4); ?>
このように、比較演算子は結果が正しければtrueを、間違っていればfalseを返します。
しかし「==」はすこし曖昧で、「変数の使い方」の中で「trueは1でもある」と書きましたが、0・false・null・空文字以外はtrueと判断してしまうのです。その為下記の場合、trueを返してしまいます。
<?php var_dump(1 == true); ?>
===
論理値を比較する時はもっと厳密に比較する必要があります。
その際に使用するのが「===」で、データ型と値の両方が等しい場合のみにtrueを返してくれます。
<?php // 厳密に比較することでfalseを返してくれます。 var_dump(1 === true); ?>
データ型を比較しますので、文字列の1と数値の1を比較してもfalseが返ってきます。
<?php $x = "1"; // 文字列の1を$xに代入 $y = 1; // 数値の1を$yに代入 // 「==」で比較するとtrueが返ってきます。 var_dump($x == $y); echo "<br>\n"; // 「===」で比較するとfalseが返ってきます。 var_dump($x === $y); ?>
!=
「!=」は左辺と右辺が等しくない時にtrueを返します。
<?php // 5と4は等しくないのでtrueを返します。 var_dump(5 != 4); ?>
!==
「!==」はデータ型と値の両方が等しくない場合にtrueを返します。
<?php $x = "1"; // 文字列の1を$xに代入 $y = 1; // 数値の1を$yに代入 // 「!=」で比較すると等しいと判断されfalseが返ってきます。 var_dump($x != $y); echo "<br>\n"; // 「!=」で比較すると等しくないと判断されtrueが返ってきます。 var_dump($x !== $y); ?>
<
「<」は左辺が右辺より小さい時にtrueを返します。 [php] <?php // 4は5より小さいのでtureを返します。 var_dump(4 < 5); echo "<br>\n"; // 5は5より小さくはないのでfalseを返します。 var_dump(5 < 5); ?> [/php] » 実行結果
<=
「<=」は左辺が右辺より小さい もしくは 等しい場合にtrueを返します。 [php] <?php // 4は5より小さいのでtureを返します。 var_dump(4 <= 5); echo "<br>\n"; // 5と5は等しいのでtrueを返します。 var_dump(5 <= 5); ?> [/php] » 実行結果
>
「>」は左辺が右辺より大きい場合にtrueを返します。
<?php // 5は4より大きいのでtureを返します。 var_dump(5 > 4); echo "<br>\n"; // 5は5より大きくはないのでfalseを返します。 var_dump(5 > 5); ?>
>=
「>=」は左辺が右辺より大きい もしくは 等しい場合にtrueを返します。
<?php // 5は4より大きいのでtureを返します。 var_dump(5 >= 4); echo "<br>\n"; // 5と5は等しいのでtrueを返します。 var_dump(5 >= 5); ?>
最後に
これまでの例は数値でしたが、「==」「===」「!=」「!==」については文字列での比較も可能です。
<?php $x = "こんにちは"; var_dump($x == "こんにちは"); ?>