1. 类型
PHP 支持 9 种数据类型,包括 4 种标量类型、3 种复合类型、2 种特殊类型
标量类型:
布尔 boolean
整数 integer
浮点数 float
字符串 string
复合类型:
数组 array
对象 object
可调用 callable
特殊类型:
资源 resource
空 null
1.1. 布尔
TRUE 或 FALSE
- 不区分大小写
- (bool) ‘0’ 等于 FALSE
1.2. 整数
可以用二进制数、八进制数、十进制数、十六进制数表示
二进制数:
0b___
八进制数:
0___
十进制数:
___
十六进制数:
0x___ 或 0X___
1.3. 浮点数
可以用小数、指数表示
小数:
___.___
指数:
___e___ 或 ___E___
- 浮点数不能进行 == 或 === 比较
1.4. 字符串
可以用单引号、双引号、nowdoc 结构、heredoc 结构表示
单引号:
‘___’
双引号:
“___”
nowdoc 结构:
<<<‘定界符’
___
定界符
heredoc 结构:
<<<“定界符”
___
定界符
<<<定界符
___
定界符
1.5. 数组
$数组名 = array(
键1 => 值1,
键2 => 值2,
……
)
$数组名 = [
键1 => 值1,
键2 => 值2,
……
]
1.6. 对象
$对象名 = new 类名
1.7. 可调用
可以用函数、类的静态方法、对象的方法表示
函数:
function() {……}
‘函数名’
类的静态方法:
‘类名::静态方法名’
[‘类名’, ‘静态方法名’]
[$对象名, ‘静态方法名’]
对象的方法:
[$对象名, ‘方法名’]
1.8. 资源
1.9. 空
NULL
- 不区分大小写
- 变量为 NULL 的情况:
- 被赋值为 NULL
- 未被定义或未被赋值
- 被注销定义:unset(变量)
2. 类型处理函数
2.1. 打印变量的类型和值
var_dump(变量1[, 变量2, …])
2.2. 获取变量的类型
gettype(变量)
- 返回值:
| boolean | 布尔 |
| integer | 整数 |
| double | 浮点数 |
| string | 字符串 |
| array | 数组 |
| object | 对象 |
| resource | 资源 |
| NULL | 空 |
- 建议使用 is_xxx() 函数代替
2.3. 设置变量的类型
settype(&变量, 类型)
- 类型:
| bool 或 boolean | 布尔 |
| int 或 integer | 整数 |
| float | 浮点数 |
| string | 字符串 |
| array | 数组 |
| object | 对象 |
| null | 空 |
- 会改变变量本身的类型
2.4. 检测变量的类型
| 布尔 | is_bool(变量) |
| 整数 | is_int(变量) is_integer(变量) |
| 浮点数 | is_float(变量) is_double(变量) is_real(变量) |
| 字符串 | is_string(变量) |
| 数组 | is_array(变量) |
| 对象 | is_object(变量) |
| 资源 | is_resource(变量) |
| 空 | is_null(变量) |
2.5. 转换变量的类型
| 布尔 | boolval(变量) | (bool)变量 (boolean)变量 |
| 整数 | intval(变量) | (int)变量 (integer)变量 |
| 浮点数 | floatval(变量) doubleval(变量) | (float)变量 (double)变量 (real)变量 |
| 字符串 | strval(变量) | (string)变量 |
| 数组 | (array)变量 | |
| 对象 | (object)变量 | |
| 空 | (unset)变量 |
- 不会改变变量本身的类型