PHP 型の比較表
下記の表はPHPの型と
比較演算子
の振る舞いについて、緩やかな場合と厳密な場合の両方について
例を示しています。この付録はマニュアルの
型の相互変換
にも関連しています。種々のユーザーコメントと
» BlueShoesの働きの
おかげです。
この表を活用する前に、型とその意味について理解しておく必要があります。
例えば、"42"
は文字列ですが
42
は整数です。
false
はboolですが"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 = ""; |
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 |