PHP 7 标量类型声明
PHP 7 标量类型声明
在PHP7中,引入了一个新特性,标量类型声明。标量类型声明有两个模式
强制模式- 强制模式是默认模式,不需要指定。
严格模式- 严格模式必须明确声明。RFC 给每一个 PHP 文件,添加一句新的可选指令(declare(strict_type=1);),让同一个 PHP 文件内的全部函数调用和语句返回,都有一个“严格约束”的标量类型声明检查。
可以使用上述模式强制执行以下类型的函数参数:
int
float
bool
string
interfaces
array
callable
例子:强制模式
<?php // Coercive mode function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
下面是输出
9
例子:严格模式
<?php // Strict mode declare(strict_types=1); function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
上述代码会提示如下错误:
Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...