📜  php 7.1 函数参数带有“?” - PHP (1)

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

PHP 7.1 函数参数带有“?” - PHP

在 PHP 7.1 中引入了一个新的特性,即函数参数带有 ? 符号,用于表示函数参数可以接受 NULL 值作为默认值。这个特性也被称为 "可为空的类型声明",它增强了函数参数的灵活性。

使用 ? 符号来表示可为空的参数类型,可以在函数定义中指定默认值为 NULL,以使函数能够接受未提供参数值或者传入 NULL 参数值的情况。

语法

下面是使用 ? 符号来表示可为空的参数类型的语法:

function functionName(?type $parameter = null) {
    // 函数体
}
  • functionName:函数名
  • type:指定参数的数据类型
  • $parameter:参数名称
  • = null:指定参数的默认值为 NULL
示例

让我们来看一个示例,说明如何使用可为空的参数类型:

function greet(?string $name = null) {
    if ($name === null) {
        echo "Hello, anonymous!";
    } else {
        echo "Hello, " . $name . "!";
    }
}

greet(); // 输出: Hello, anonymous!
greet("Alice"); // 输出: Hello, Alice!
greet(null); // 输出: Hello, anonymous!

在上述示例中,greet() 函数可以接受一个可为空的字符串参数 $name,如果未提供参数值或者传入 null,则默认值为 null,并输出 "Hello, anonymous!",否则将参数值与 "Hello, " 连接起来并输出。

注意事项
  • 可为空的参数类型只能在 PHP 7.1 及更高版本中使用,低于 PHP 7.1 的版本不支持该特性。
  • 可为空的参数类型只能用于标量类型,如字符串、整数、浮点数等,并不能用于自定义对象。

这就是 PHP 7.1 中函数参数带有 ? 符号的介绍。这个特性使得函数参数更具灵活性,可以轻松处理接受 NULL 值作为参数值的情况。在编写 PHP 7.1 或更高版本的代码时,可以充分利用这个特性来提高代码的可读性和健壮性。