PHP 比較演算子 【初級編 第25回】

この記事は2012年11月26日に書かれたものです。内容が古い可能性がありますのでご注意ください。


PHP 比較演算子 【初級編 第25回】

比較演算子について

前回は文字列演算子について記述しました。
今回は比較演算子について記述していきたいと思います。

比較演算子

比較演算子とは、左側の値と右側の値を比較して
その結果を真偽で返す演算子です。
真となった場合にはTRUEを返し、偽となった場合はFALSEを返します。

よく if文(if文については後述します)などで処理の内容を分岐させたい場合などに使用します。
比較演算子には以下のようなものがあります。

$a == $b 2つの値が同じ場合には真、異なれば偽
$a != $b 2つの値が異なれば真、同じなら偽
$a $b 左の値が大きければ真、小さければ偽(同じ場合は偽)
$a = $b 左の値が大きければ真、小さければ偽(同じ場合は真)
$a === $b 2つの値が同じ場合でかつ型も一緒なら真、値か型が異なれば偽
$a !== $b 2つの値が異なるかもしくは型が異なるなら真、値と型が同じなら偽

2つの値が同じかどうかの比較

まず左側の値と右側の値が同じかどうかを比較する演算子で確認したいと思います。
比較したい値の間に ==(イコール×2)と表記します。
2つの値が同じなら TRUE を返し、偽なら FALSE を返します。

以下では比較した値を $atai1, $atai2 に代入してその結果を
var_dump で表示しています。

<?php
 $atai1 = 1 == 1;
 var_dump($atai1);
 echo "<br>";
 $atai2 = 1 == 2;
 var_dump($atai2);
?>

表示結果は以下のようになります。
ブラウザ確認画像

このように比較演算子を使用し、2つの値が同じなのか、異なるのかを比較することができます。

またこの値は数値でなく、文字列の型だった場合にも同じ結果を得ることができます。

<?php
 $atai1 = 1 == "1";
 var_dump($atai1);
 echo "<br>";
 $atai2 = 1 == "2";
 var_dump($atai2);
?>

このように内部的に文字列型も数値型に変換されて比較されます。
ブラウザ確認画像

値が異なる場合に真とする場合には、以下のように != と記述します。

<?php
 $atai1 = 1 != 1;
 var_dump($atai1);
 echo "<br>";
 $atai2 = 1 != 2;
 var_dump($atai2);
?>

このように TRUE と FALSE が反対(値が異なっているほうが TRUE)になりました。
ブラウザ確認画像

2つの値の大きさの比較

値が同じか異なっているかを判定する以外にも、2つの値の数値の大きさで比較させることもできます。
を値の間に入れると、左側の値が大きい場合に真で、小さい場合に偽となります。

以下では 左側の値と右側の値の大きさを比べてその結果を表示しています。

<?php
 $atai = 1 < 2;
 var_dump($atai);
 echo "<br>";
 $atai = 1 > 2;
 var_dump($atai);
?>

表示結果は以下のようになります。
ブラウザ確認画像

上記では、左側と右側の値の大きさが同じ場合には偽となりましたが、
値が同じ場合には真とするということもできます。

<?php
 $atai = 2 < 2;
 var_dump($atai);
 echo "<br>";
 $atai = 2 <= 2;
 var_dump($atai);
?>

このように に = を付けることで、
その値以上という表記になります。
ブラウザ確認画像

型も含めた判定

今までは値のみの判定だったので、数値型と文字列型を比較しても
文字列型が数値のように扱われて比較されていましたが、
その型まで一緒かどうかを判定することもできます。

<?php
 $atai = 10 === 10;
 var_dump($atai);
 echo "<br>";
 $atai = 10 === "10";
 var_dump($atai);
?>

上記のようにダブルクォーテーションで囲むと文字列型となるため、
型が異なり FALSE と表示されました。
ブラウザ確認画像
同じでない場合に真とするには !== と表記します。

今回はここまでで次回からも引き続き型について記述していきたいと思います。

  • このエントリーをはてなブックマークに追加

PAGE TOP