PHP 类型比较表
以下的表格显示了PHP类型 和 比较运算符 在松散和严格比较时的作用。该补充材料还和 类型戏法 的相关章节内容有关。同时,大量的用户注释和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 | 
* 代表在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 | 
苏公网安备
                32050902101537号