严格打字

从 PHP 7.0 开始,严格打字可以减轻类型杂耍的一些有害影响。通过将此 declare 语句包含为文件的第一行,PHP 将通过抛出 TypeError 异常来强制执行参数类型声明和返回类型声明。

declare(strict_types=1);

例如,使用参数类型定义的此代码将在运行时抛出类型 TypeError 的可捕获异常:

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

echo sum("1", 2);

同样,此代码使用返回类型声明; 如果它尝试返回除整数之外的任何内容,它也会抛出异常:

<?php
declare(strict_types=1);

function returner($a): int {
    return $a;
}

returner("this is a string");