📜  php 定义严格类型 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:23.347000             🧑  作者: Mango

PHP 定义严格类型

在传统的 PHP 中,变量的类型是动态的,这意味着我们可以在不指定数据类型的情况下声明变量。但是,PHP 7 引入了一个新功能,即严格类型模式,该模式允许开发人员在定义函数参数、返回类型和类属性时指定类型。这使得代码更加结构化、可读性更高,减少了由于类型转换而引起的错误。

开启严格类型模式

要开始使用严格类型模式,需要在代码中添加以下声明:

declare(strict_types=1);

这个声明告诉 PHP 解释器在执行脚本时启用严格类型检查。

函数参数类型声明

在 PHP 7 中,我们可以对函数参数进行类型声明,如下所示:

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

上面的代码指定了两个参数的类型都为整型。如果我们传递一个不是整型的参数,PHP 将抛出一个类型错误。

函数返回类型声明

在 PHP 7 中,我们还可以对函数的返回类型进行类型声明:

function divide(int $a, int $b): float {
    return $a / $b;
}

这个函数使用 int 类型的两个参数,但返回一个 float 类型的值。

类属性类型声明

在 PHP 7 中,我们可以在类中对属性类型进行类型声明:

class Person {
    private string $name;
    private int $age;
}

上面的代码指定了两个属性的类型,一个是字符串类型($name),一个是整型($age)。

注意事项
  • 只有在使用了 declare(strict_types=1); 声明之后才能使用严格类型模式。
  • 默认情况下,函数和方法参数是可选的,但在严格类型模式下,所有参数都是必需的。如果想要使用可选参数,需要在参数名称后面加上 ?
  • 如果没有指定函数可能出现的错误类型,那么默认情况下,PHP 会在运行时抛出一个 TypeError
总结

严格类型模式可以使我们的代码更具结构性、可读性更高,同时减少由于类型转换而引起的错误。现在我们可以在函数参数、返回类型以及类属性上进行类型声明。如果你还没有使用严格类型模式,强烈建议你尝试一下。