PHP 型の比較表

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

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

注意:

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

注意:

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

注意:

数値演算の結果が、定数 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 = ""; string true false true false
$x = null; NULL true true false false
var $x; NULL true true false false
$x が未定義 NULL true true false false
$x = []; array true false true false
$x = ['a', 'b']; array false false true true
$x = false; bool true false true false
$x = true; bool false false true true
$x = 1; int false false true true
$x = 42; int false false true true
$x = 0; int true false true false
$x = -1; int false false true true
$x = "1"; string false false true true
$x = "0"; string true false true false
$x = "-1"; string false false true true
$x = "php"; string false false true true
$x = "true"; string false false true true
$x = "false"; string false false true true

== による緩やかな比較
true false 1 0 -1 "1" "0" "-1" null [] "php" ""
true true false true false true true false true false false true false
false false true false true false false true false true true false true
1 true false true false false true false false false false false false
0 false true false true false false true false true false false* false*
-1 true false false false true false false true false false false false
"1" true false true false false true false false false false false false
"0" false true false true false false true false false false false false
"-1" true false false false true false false true false false false false
null false true false true false false false false true true false true
[] false true false false false false false false true true false false
"php" true false false false* false false false false false false true false
"" false true false false* false false false false true false false true
* PHP 8.0.0 より前のバージョンでは、true でした。

=== による厳密な比較
true false 1 0 -1 "1" "0" "-1" null [] "php" ""
true true false false false false false false false false false false false
false false true false false false false false false false false false false
1 false false true false false false false false false false false false
0 false false false true false false false false false false false false
-1 false false false false true false false false false false false false
"1" false false false false false true false false false false false false
"0" false false false false false false true false false false false false
"-1" false false false false false false false true false false false false
null false false false false false false false false true false false false
[] false false false false false false false false false true false false
"php" false false false false false false false false false false true false
"" false false false false false false false false false false false true