php最新版为8.3,支持标量(bool/int/float/string)、复合(array/object/callable/iterable)、特殊(null/resource)、新增(mixed/never/void/enum/字面量)及联合/交集类型,强化类型安全与表达力。

PHP最新版(截至2026年)已演进至PHP 8.3稳定版本,其数据类型体系在保持向后兼容基础上,整合了PHP 8.0–8.3各阶段引入的严格类型能力与语义增强。以下是当前PHP最新版所支持的全部数据类型及其核心特征说明:
一、标量类型
标量类型是PHP中最基础的数据类型,每个变量仅存储单一值,无需额外结构支撑。它们在运行时自动推断,但可显式声明以提升类型安全。
1、bool:仅接受true或false两个字面量值;在条件上下文中,0、0.0、""、[]、null均被隐式转为false,但严格比较(===)时仅true/false本身为true。
2、int:表示带符号整数,支持十进制(123)、八进制(0123)、十六进制(0x7B)、二进制(0b1111011);64位系统下范围为−9223372036854775808至9223372036854775807;超出范围时不报错,自动转为float。
3、float(亦称double):存储IEEE 754双精度浮点数;存在精度限制,例如0.1 + 0.2 !== 0.3;财务场景应使用BCMath或GMP扩展。
4、string:字符序列,支持单引号('raw')、双引号("interpolated {$var}")、Heredoc(
二、复合类型
复合类型用于组织多个值,支持嵌套与结构化表达,是构建复杂数据模型的基础。
1、array:有序映射,键可为int或string,值可为任意类型;PHP 8.1起支持只读数组(readonly array)语法(readonly array
2、object:类实例,封装属性与方法;PHP 8.2引入只读类(readonly class),确保所有属性不可变;对象比较默认为引用比较,需重载__equals()实现值比较。
3、callable:可调用实体的类型别名,涵盖函数名字符串、[object, 'method']数组、匿名函数及静态方法字符串;PHP 8.1起可作为参数类型强制校验执行可行性。
4、iterable:PHP 7.1引入,表示可被foreach遍历的类型,包括array、Traversable实现类、生成器;PHP 8.0起允许在return类型中使用,如function getItems(): iterable。
三、特殊类型
特殊类型不参与常规数值运算,专用于表达状态、资源句柄或空值语义,具有唯一性和不可替代性。
1、null:仅有一个值null,表示变量未赋值或已被unset;在严格类型模式下,null不能赋给非?nullable类型。
2、resource:对外部资源(如文件句柄、数据库连接、图像流)的引用;PHP 8.0起资源类型已标记为“软弃用”,推荐改用面向对象封装(如PDOStatement、SplFileObject)。
四、新增与增强类型(PHP 8.0–8.3)
该类类型为PHP高版本特有,显著提升类型表达力与错误预防能力,需启用严格类型声明(declare(strict_types=1))以发挥最大效用。
1、mixed:PHP 8.0引入,等价于union of all types(bool|int|float|string|array|object|null|resource|callable|iterable),用于泛型占位或动态接口。
2、never:PHP 8.1引入,仅用于返回类型,表示函数永不正常返回(必抛异常、调用exit()或无限循环);不可参与联合类型(如int|never非法)。
3、void:PHP 7.1引入,PHP 8.0起支持在参数位置使用(如function log(string $msg): void);表示无返回值且必然终止。
4、enum:PHP 8.1引入,定义封闭值集合,支持scalar(case Success, case Failure)与backed(case Success = 1)两种形式;可附加方法与构造逻辑,替代传统常量组。
5、true、false、non-empty-string等字面量类型:PHP 8.2起支持更细粒度字面量约束,如function getName(): non-empty-string保证返回非空字符串。
五、联合类型与交集类型
联合类型(Union Types)与交集类型(Intersection Types)是PHP 8.0+类型系统的核心增强,允许开发者精确描述多态输入与输出契约。
1、联合类型(|):PHP 8.0引入,如string|int表示变量可为字符串或整数;null必须显式写出(?string等价于string|null);不允许与void、never组合。
2、交集类型(&):PHP 8.1引入,如Iterator&Countable表示对象必须同时实现Iterator和Countable接口;常用于泛型约束与契约强化。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











