PHP 手册
后退 |  | 前进

# 附录 O. PHP 类型比较表

以下的表格显示了 PHP 类型和比较运算符在松散和严格比较时的作用。该补充材料还和类型戏法的相关章节内容有关。同时，大量的用户注释和 BlueShoes 的工作也给该材料提供了帮助。

在使用这些表格之前，需要明白变量类型及它们的意义。例如，"42" 是一个字符串而 42 是一个整数。`FALSE` 是一个布尔值而 "false" 是一个字符串。

> 注: HTML 表单并不传递整数、浮点数或者布尔值，它们只传递字符串。要想检测一个字符串是不是数字，可以使用 is_numeric() 函数。

> 注: 在没有定义变量 $x 的时候，诸如 if ($x) 的用法会导致一个 `E_NOTICE` 级别的错误。所以，可以考虑用 empty() 或者 isset() 函数来初始化变量。

表格 O-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`

表格 O-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` | `TRUE` | `TRUE` | `FALSE`
"php" | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE`

表格 O-3. 用 === 进行严格比较

| `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` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
1 | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
0 | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
-1 | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
"1" | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
"0" | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
"-1" | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE`
`NULL` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE`
array() | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE`
"php" | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE`

> PHP 3.0 注意事项: 在 PHP 3 中，字符串 "0" 被认为是非空的，这个情况在 PHP 4 中发生了改变，它将被认为是空值。

后退 | 起点 | 前进
Unix 领域：Unix 和 UDG | 上一级 | 解析器代号列表