以下的表格显示了?PHP?变量类型和比较符在松散和严格比较时的作用。该补充材料还和类型戏法的相关章节内容有关。?
在使用这些表格之前,我们需要明白变量类型及它们的意义。例如,"42"?是一个字符串而?42?是一个整数。FALSE?是一个布尔值而?"false"?是一个字符串。?
注:?HTML?表单并不传递整数、浮点数或者布尔值,它们只传递字符串。要想检测一个字符串是不是数字,我们可以使用?is_numeric()?函数。?
注:?在没有定义变量?$x?的时候,诸如?if?($x)?的用法会导致一个?E_NOTICE?级别的错误。所以,我们可以考虑用?empty()?或者?isset()?函数来初始化变量。?
表格?L-1.?用?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?=?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 |
表格?L-2.?用?==?进行松散比较
? |
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 |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
1 |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
0 |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
-1 |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
"1" |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
"0" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
"-1" |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
NULL |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
array() |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
"php" |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
表格?L-3.?用?===?进行严格比较
? |
TRUE |
FALSE |
1 |
0 |
-1 |
"1" |
"0" |
"-1" |
NULL |
array() |
"php" |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |