PHP 从 7.0 版本开始支持类型声明(符合类型),允许对变量、函数参数和返回值声明明确的类型,从而提高代码的可读性、安全性和 IDE 支持。以下是 PHP 中主要的符合类型分类及说明:
1. 标量类型- int:整数类型(如 42)。
- float:浮点数类型(如 3.14)。
- bool:布尔值(true 或 false)。
- string:字符串类型(如 "Hello")。
2. 资源类型- resource:表示外部资源的引用(如数据库连接、文件句柄等)。例如:$file = fopen("test.txt", "r"); // $file 是 resource 类型
3. 复合类型- array:数组类型,元素可以是任意类型(如 [1, "a", true])。
- object:对象类型(类的实例)。
4. 可空类型(PHP 7.1+)- 在类型前添加 ? 表示该变量或参数可为 null。例如:function greet(?string $name): void { // $name 可以是 string 或 null}
5. 联合类型(PHP 8.0+)- 使用 | 指定多个可能的类型。例如:function process(int|float $value): void { // $value 可以是 int 或 float}
6. 其他类型- void:表示函数无返回值(PHP 7.1+)。
- mixed:表示任意类型(PHP 8.0+)。
- self:表示当前类的类型(用于类方法返回值)。
- parent:表示父类的类型。
- class-name:特定类或接口的名称(如 DateTime)。
类型声明语法示例- 变量声明(PHP 7.4+):$count: int = 10;
- 函数参数声明:function greet(string $name): string { return "Hello, $name";}
- 返回值声明:function sum(int $a, int $b): int { return $a + $b;}
使用类型声明的好处- 增强代码可读性:明确变量或参数的预期类型。
- 提高安全性:类型检查可避免因类型不匹配导致的错误。
- 改善 IDE 支持:IDE 能提供智能补全和错误检测。
注意事项- 类型声明是非强制的(默认弱类型模式),但可通过 declare(strict_types=1) 启用严格模式。
- 类型检查仅在编译时生效,不影响运行时行为。
- PHP 7.0 引入基础类型声明,7.1 加入可空类型,7.4 支持属性类型,8.0 引入联合类型。
通过合理使用类型声明,可以显著提升 PHP 代码的健壮性和可维护性。