# PHP 型の比較表

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

この表を活用する前に、型とその意味について理解しておく必要があります。 例えば、`"42"`は string ですが `42`は int です。 `false` は bool ですが `"false"` は string です。

> 注意:

> 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 = "";` | 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`

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open