# PHP 型の比較表

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

この表を活用する前に、型とその意味について理解しておく必要があります。 例えば、"42"は文字列ですが 42は整数です。 `FALSE`はbooleanですが"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() | boolean : 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(); | array | `TRUE` | `FALSE` | `TRUE` | `FALSE`
$x = array('a', 'b'); | array | `FALSE` | `FALSE` | `TRUE` | `TRUE`
$x = false; | boolean | `TRUE` | `FALSE` | `TRUE` | `FALSE`
$x = true; | boolean | `FALSE` | `FALSE` | `TRUE` | `TRUE`
$x = 1; | integer | `FALSE` | `FALSE` | `TRUE` | `TRUE`
$x = 42; | integer | `FALSE` | `FALSE` | `TRUE` | `TRUE`
$x = 0; | integer | `TRUE` | `FALSE` | `TRUE` | `FALSE`
$x = -1; | integer | `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` | array() | "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` | `TRUE` | `TRUE`
-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`
array() | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `TRUE` | `FALSE` | `FALSE`
"php" | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE`
"" | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE`

=== による厳密な比較
| `TRUE` | `FALSE` | 1 | 0 | -1 | "1" | "0" | "-1" | `NULL` | array() | "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`
array() | `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`