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 |