PHP 型の比較表

下記の表はPHPの比較演算子 の振る舞いについて、緩やかな場合と厳密な場合の両方について 例を示しています。この付録はマニュアルの 型の相互変換 にも関連しています。種々のユーザーコメントと » BlueShoesの働きの おかげです。

この表を活用する前に、型とその意味について理解しておく必要があります。 例えば、"42"文字列ですが 42整数です。 falseboolですが"false"文字列です。

注意:

HTMLフォームは整数、浮動小数点数、booleanを渡してはくれず、 文字列を渡します。文字が数値であるかどうか確認するには、 is_numeric()を使うとよいでしょう。

注意:

$xが定義されていない状態で単に if ($x)とするとE_NOTICE レベルのエラーが発生します。代わりに、empty()isset()を使うか、あるいは変数を初期化するように してください。

注意:

数値演算の結果が、定数 NAN で表される値になることがあります。 この値を他の値と比較すると、緩やかな比較および厳密な比較のいずれでも結果は false になります。 自分自身と比較した場合も含みますが、true と比較した場合は除きます。 (つまり NAN != NAN であり NAN !== NAN であるということです)。 結果が NAN になる演算の例には sqrt(-1)asin(2) そして acosh(0) があります。

PHP 関数による $x の比較
gettype()empty()is_null()isset()bool : if($x)
$x = "";stringtruefalsetruefalse
$x = null;NULLtruetruefalsefalse
var $x;NULLtruetruefalsefalse
$x が未定義NULLtruetruefalsefalse
$x = [];arraytruefalsetruefalse
$x = ['a', 'b'];arrayfalsefalsetruetrue
$x = false;booltruefalsetruefalse
$x = true;boolfalsefalsetruetrue
$x = 1;intfalsefalsetruetrue
$x = 42;intfalsefalsetruetrue
$x = 0;inttruefalsetruefalse
$x = -1;intfalsefalsetruetrue
$x = "1";stringfalsefalsetruetrue
$x = "0";stringtruefalsetruefalse
$x = "-1";stringfalsefalsetruetrue
$x = "php";stringfalsefalsetruetrue
$x = "true";stringfalsefalsetruetrue
$x = "false";stringfalsefalsetruetrue

== による緩やかな比較
truefalse10-1"1""0""-1"null[]"php"""
truetruefalsetruefalsetruetruefalsetruefalsefalsetruefalse
falsefalsetruefalsetruefalsefalsetruefalsetruetruefalsetrue
1truefalsetruefalsefalsetruefalsefalsefalsefalsefalsefalse
0falsetruefalsetruefalsefalsetruefalsetruefalsefalse*false*
-1truefalsefalsefalsetruefalsefalsetruefalsefalsefalsefalse
"1"truefalsetruefalsefalsetruefalsefalsefalsefalsefalsefalse
"0"falsetruefalsetruefalsefalsetruefalsefalsefalsefalsefalse
"-1"truefalsefalsefalsetruefalsefalsetruefalsefalsefalsefalse
nullfalsetruefalsetruefalsefalsefalsefalsetruetruefalsetrue
[]falsetruefalsefalsefalsefalsefalsefalsetruetruefalsefalse
"php"truefalsefalsefalse*falsefalsefalsefalsefalsefalsetruefalse
""falsetruefalsefalse*falsefalsefalsefalsetruefalsefalsetrue
* PHP 8.0.0 より前のバージョンでは、true でした。

=== による厳密な比較
truefalse10-1"1""0""-1"null[]"php"""
truetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse
falsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse
1falsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalse
0falsefalsefalsetruefalsefalsefalsefalsefalsefalsefalsefalse
-1falsefalsefalsefalsetruefalsefalsefalsefalsefalsefalsefalse
"1"falsefalsefalsefalsefalsetruefalsefalsefalsefalsefalsefalse
"0"falsefalsefalsefalsefalsefalsetruefalsefalsefalsefalsefalse
"-1"falsefalsefalsefalsefalsefalsefalsetruefalsefalsefalsefalse
nullfalsefalsefalsefalsefalsefalsefalsefalsetruefalsefalsefalse
[]falsefalsefalsefalsefalsefalsefalsefalsefalsetruefalsefalse
"php"falsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruefalse
""falsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetrue
To Top