PHPでウェブの世界と繋がろう!
menu
ホーム > PHPの文法 > 4 演算子 > 4-7 比較演算子

4-7 比較演算子

Pocket

- 1 分ノート ! -

== 等しい === 同じ
!= 等しくない <> 等しくない
!== 同じでない    
> より大きい < より小さい
>= 以上 <= 以下
  • 比較演算子 は、左右のオペランドを比較する
  • 比較演算子 は、結果を論理値「TRUE(真)」「FALSE(偽)」で返す
  • 比較演算子 は、様々なデータ型を比較できる

比較演算子とは
POINT

  • 比較演算子 は、左右のオペランドを比較する
  • 比較演算子 は、結果を論理値「TRUE(真)」「FALSE(偽)」で返す

比較演算子は左辺オペランド右辺オペランドを比較します(オペランド:演算の対象となる値や変数のこと)。比較の結果が真なら論理値の「true(真)」を返し、そうでない場合は論理値の「false(偽)」を返します(論理型はこちらを参照下さい)。オペランドには数値文字列の両方が使用できます。また他のさまざまな型を比較できます。

比較演算子の種類

比較演算子の種類、優先順位、結合時の評価です。すべての演算子の種類や優先順位はこちらを参照下さい。

演算子 名前 優先順位 結合時の評価 結果
== 等しい 1 結合しない $a == $b 型の相互変換をした後で $a が $b に等しい時に TRUE。
=== 同じ 1 結合しない $a === $b $a が $b に等しく同じ型でである場合に TRUE
!= 等しくない 1 結合しない $a != $b 型の相互変換をした後で $a が $b に等しくない場合に TRUE
<> 等しくない 1 結合しない $a <> $b 型の相互変換をした後で $a が $b に等しくない場合に TRUE
!== 同じでない 1 結合しない $a !== $b $a が $b と等しくないか、同じ型でない場合に TRUE
> より大きい 2 結合しない $a > $b $a が $b より大きい時に TRUE
< より小さい 2 結合しない $a < $b $a が $b より小さい時に TRUE
>= 以上 2 結合しない $a >= $b $a が $b より大きいか等しい時に TRUE
<= 以下 2 結合しない $a <= $b $a が $b より小さいか等しい時に TRUE

さまざまな型の比較
POINT

  • 比較演算子 は、様々なデータ型を比較できる

比較演算子は様々なデータ型を比較でき、左辺オペランドと右辺オペランドに異なるデータ型を配置しても比較することが可能です。その際、注意しなければならないことは、型のジャグリングが発生するということです。型のジャグリングとは規則に応じて自動的に行われるデータ型の変換のことです。PHPは必要に応じてデータ型を自動的に変換します。データ型の変換をキャストといいます。型のジャグリングについてはこちらを参照ください。

第 1 オペランドの型 第 2 オペランドの型 結果
null または string string NULL を "" に変換し、数値または文字として比較します
bool または null あらゆる型 bool に変換し、FALSE < TRUE と判断します
object object 組み込みクラスには独自の比較基準が定義されています。それ以外の
クラスは比較できません。同じクラスであるかどうかは – プロパティが
同じ値であるかどうかを配列形式で比較(PHP 4)、PHP 5 では ここで説明されています。
string, resource または number string, resource または number 文字列やリソースを数値に変換し、算術演算を行います
array array 要素数の少ない配列のほうが小さくなります。オペランド 1 のキーが
オペランド 2 に存在しない場合、配列は比較できません。そうでない場合は
個々の要素の値を比較します
array あらゆる型 array のほうが常に大きくなります
object あらゆる型 object のほうが常に大きくなります
//NULLを""に変換
if(null == "") echo '結果は TRUE です。<br/>';

//""をboolに変換
if(false == "") echo '結果は TRUE です。<br/>';

//要素数の少ない配列の方が小さくなる
$a = array(1,2,3);
$b = array(1,2,3,4);
if($a <= $b) echo '結果は TRUE です。<br/>';

結果は

結果は TRUE です。
結果は TRUE です。
結果は TRUE です。

となります。

計算の例

等しい==
 2つのオペランドの「値」が等しい場合はtrueを返します。そうでない場合にfalseを返します。

if(1 == 1) echo '結果は TRUE です。'; else '結果は FALSE です。';

結果は

結果は TRUE です。

となります。

同じ===
 2つのオペランドの「値」と「型」が等しい場合はtrueを返します。そうでない場合にfalseを返します。この演算子は暗黙のキャスト(型変換)は行われません。

if(1 === 1) echo '結果は TRUE です。'; else '結果は FALSE です。';

結果は

結果は TRUE です。

となります。

等しくない!=
 2つのオペランドの「値」が等しくない場合にtrueを返します。そうでない場合にfalseを返します。

if(1 != 2) echo '結果は TRUE です。'; else '結果は FALSE です。';

結果は

結果は TRUE です。

となります。

同じでない!==
 2つのオペランドの「値」が等しくない場合、または、「型」が等しくない場合にtrueを返します。そうでない場合にfalseを返します。

if(1 !== 2) echo '結果は TRUE です。'; else '結果は FALSE です。';

結果は

結果は TRUE です。

となります。

より大きい>
 左辺のオペランドが右辺のオペランドより大きい場合にtrueを返します。そうでない場合にfalseを返します。

if(2 > 1) echo '結果は TRUE です。'; else '結果は FALSE です。';

結果は

結果は TRUE です。

となります。

より小さい<
 左辺のオペランドが右辺のオペランドより小さい場合にtrueを返します。そうでない場合にfalseを返します。

if(1 < 2) echo '結果は TRUE です。'; else '結果は FALSE です。';
&#91;/PHP&#93;
結果は
<div id="txtBoxLmnBgBrw1Br1">
<strong>結果は TRUE です。</strong>
</div>
となります。
</div>



<a name="4-7"></a>
<h6>以上&gt;=</h6>
<div id="txtBoxLms"> 左辺のオペランドが右辺のオペランドより大きい場合、または、等しい場合にtrueを返します。そうでない場合にfalseを返します。
[PHP ruler="true" toolbar="true"]
if(2 >= 1) echo '結果は TRUE です。'; else '結果は FALSE です。';

結果は

結果は TRUE です。

となります。

以下<=
 左辺のオペランドが右辺のオペランドより小さい場合、または、等しい場合にtrueを返します。そうでない場合にfalseを返します。

if(1 <= 2) echo '結果は TRUE です。'; else '結果は FALSE です。';
&#91;/PHP&#93;
結果は
<div id="txtBoxLmnBgBrw1Br1">
<strong>結果は TRUE です。</strong>
</div>
となります。
</div>


<div id="pageUpArea"><div id="pageUpLink"><a href="#mokuji">ページ内の目次へ</a></div></div>
<div style="clear:both"></div>
</div>







<a name="5"></a>
<h5>サンプルコード</h5>
<div id="txtBoxLms" class="txtM">

<span id="txtSpl"><a href="http://www.tryphp.net/code-example/php/3-4-7.php" target="_blank"> - サンプル Click Here ! - </a></span>

[PHP ruler="true" toolbar="true"]
<h3>型変換</h3>
<?php
//NULLを""に変換
if(null == "") echo '結果は TRUE です。<br/>';

//""をboolに変換
if(false == "") echo '結果は TRUE です。<br/>';

//要素数の少ない配列の方が小さくなる
$a = array(1,2,3);
$b = array(1,2,3,4);
if($a <= $b) echo '結果は TRUE です。<br/>';
?>

<h3>等しい==</h3>
<?php
if(1 == 1) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>

<h3>同じ===</h3>
<?php
if(1 === 1) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>

<h3>等しくない!=</h3>
<?php
if(1 != 2) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>

<h3>同じでない!==</h3>
<?php
if(1 !== 2) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>

<h3>より大きい&gt;</h3>
<?php
if(2 > 1) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>

<h3>より小さい&lt;</h3>
<?php
if(1 < 2) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>

<h3>以上&gt;=</h3>
<?php
if(2 >= 1) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>

<h3>以下&lt;=</h3>
<?php
if(1 <= 2) echo '結果は TRUE です。'; else '結果は FALSE です。';
?>
実行結果
型変換
結果は TRUE です。
結果は TRUE です。
結果は TRUE です。

等しい==
結果は TRUE です。

同じ===
結果は TRUE です。

等しくない!=
結果は TRUE です。

同じでない!==
結果は TRUE です。

より大きい>
結果は TRUE です。

より小さい<
結果は TRUE です。

以上>=
結果は TRUE です。

以下<=
結果は TRUE です。

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2011年10月31日
最終更新日:2014年02月26日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpref-operators_comparison/trackback/