PHP的类型系统支持各种基础类型,例如基本类型、复合类型、联合类型、类类型等,可以组合在一起创建更加复杂的类型,其中一些类型可以写成类型声明。
一、基本类型
一些基础类型是内置类型,跟语言紧密集成,不能用用户定义类型重现(reproduced)。基础类型列表如下:
1、内置类型
- null 类型
- 标量类型:bool 类型、int 类型、float 类型、string 类型
- array 类型
- object 类型
- resource 类型
- never 类型
- void 类型
- 相对类类型:self、parent 和 static
2、字面量类型
- false
- true
3、用户定义的类型(类类型)
- 接口
- 类
- 枚举
4、callable类型
二、复合类型
可以将简单类型组合为复合类型。PHP 允许使用以下方式组合类型:
- 类类型(接口和类名)的交集。
- 类型联合。
三、交集类型
交集类型接受满足多个类类型声明的值,而不是单个值。交集类型中的每个类型由 符号连接。因此,类型 、 和 组成的交集类型将写成 。 &TUVT&U&V
四、联合类型
联合类型接受多个不同类型的值,而不是单个类型。联合类型中的每个类型由 符号连接。因此类型 、 和 的联合类型写成 。如果其中一种类型是交集类型,需要使用括号括起来,在 DNF 中写成:。 |TUVT|U|VT|(X&Y)
五、类型别名
PHP 支持两种类型别名:mixed 和 iterable,分别对应 和 的 联合类型。 object|resource|array|string|float|int|bool|nullTraversable|array
注意: PHP 不支持用户定义类型别名。