「比較演算子」の使い方です。
比較演算子とは、左辺(左の値)と右辺(右の値)を比べて、正しければ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 == "こんにちは");
?>
» 実行結果
最近のコメント