PHP Conference Japan 2024

类型系统

PHP 使用的是名义类型系统,具有强大的行为子类型关系。子类型关系在编译时检查,而类型的验证则在运行时动态检查。

PHP 的类型系统支持各种原子类型,这些原子类型可以组合在一起以创建更复杂的类型。其中一些类型可以写成类型声明

原子类型

一些原子类型是内置类型,它们与语言紧密集成,无法用用户定义的类型来复制。

基本类型列表:

标量类型

如果一个值是intfloatstringbool 类型,则认为它是标量。

用户定义类型

可以使用接口枚举定义自定义类型。这些被认为是用户定义类型或类类型。例如,可以定义一个名为Elephant的类,然后可以实例化Elephant类型的对象,并且函数可以请求Elephant类型的参数。

复合类型

可以将多个原子类型组合成复合类型。PHP允许以以下方式组合类型:

  • 类类型的交集(接口和类名)。
  • 类型的联合。

交集类型

交集类型接受满足多个类类型声明的值,而不是单个值。构成交集类型的各个类型由&符号连接。因此,由类型TUV组成的交集类型将写成T&U&V

联合类型

联合类型接受多种不同类型的值,而不是单个值。构成联合类型的各个类型由|符号连接。因此,由类型TUV组成的联合类型将写成T|U|V。如果其中一个类型是交集类型,则需要用括号括起来才能以DNF形式编写:T|(X&Y)

类型别名

PHP支持两种类型别名:mixediterable,它们分别对应于联合类型 object|resource|array|string|float|int|bool|nullTraversable|array

注意 PHP 不支持用户定义的类型别名。

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top