📜  PHP 7-标量类型声明(1)

📅  最后修改于: 2023-12-03 15:03:34.290000             🧑  作者: Mango

PHP 7-标量类型声明

在 PHP 7 中,引入了一个新特性,即标量类型声明。在函数或方法参数中,可以指定参数的类型。这种类型声明支持四种类型:intfloatstring,和bool

语法

函数或方法的参数类型可以使用以下语法指定:

function foo(int $bar) {
    // function body
}

这告诉 PHP,$bar 的类型必须是 int

可以在同一个函数或方法中使用多个参数类型声明:

function baz(string $a, float $b, bool $c) {
    // function body
}

这告诉 PHP,$a 的类型必须是 string$b 的类型必须是 float$c 的类型必须是 bool

可以和默认参数一起使用,例如:

function qux(bool $a, string $b = 'default') {
    // function body
}

这告诉 PHP,$a 的类型必须是 bool$b 的类型必须是 string。如果在调用该函数时没有提供 $b 的值,它将使用 'default'

在 PHP 7.4 中引入了一种新的语法,可以在返回类型中指定 void 类型:

function bar(): void {
    // function body
}

这告诉 PHP,该函数不返回任何值。

类型转换

如果一个函数或方法的参数类型声明与提供的参数不匹配,PHP 将尝试将参数转换为指定的类型。如果尝试失败,则抛出一个致命错误。

例如,在以下函数中,如果传递给 $bar 的参数不是一个整数,则 PHP 将尝试将其转换为一个整数:

function foo(int $bar) {
    // function body
}

如果传递给该函数的参数是 '123',PHP 将转换为 123。如果传递给该函数的参数是 'abc',则会抛出一个致命错误。

总结

标量类型声明使编写更健壮的代码变得更容易,可以在开发过程中及早检测错误。使用它可以提高代码质量和可读性。