以下的表格顯示了 PHP 類型 和 比較運算符 在松散和嚴格比較時的作用。該補充材料還和 類型戲法 的相關章節(jié)內容有關。同時,大量的用戶注釋和 ? BlueShoes 的工作也給該材料提供了幫助。
在使用這些表格之前,需要明白變量類型及它們的意義。例如,"42"
是一個字符串而
42
是一個整數。false
是一個布爾值而 "false"
是一個字符串。
注意:
HTML 表單并不傳遞整數、浮點數或者布爾值,它們只傳遞字符串。要想檢測一個字符串是不是數字,可以使用 is_numeric() 函數。
注意:
在沒有定義變量 $x 的時候,諸如
if ($x)
的用法會導致一個E_NOTICE
級別的錯誤。所以,可以考慮用 empty() 或者 isset() 函數來初始化變量。
注意:
某些數值操作會導致一個特殊值,可以用常量
NAN
表示。 無論是松散還是嚴格比較,這個值和其他任意值(包括它自身,但排除true
)比較時都會產生false
的結果, 例如NAN != NAN
和NAN !== NAN
。 導致NAN
的操作例子包括sqrt(-1)
、asin(2)
、acosh(0)
。
表達式 | 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 is undefined | NULL | true |
true |
false |
false |
$x = []; |
array | true |
false |
true |
false |
$x = ['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 |
[] |
"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 |
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 |