PHP 中函数参数中的 ?string 类型

1,088 阅读1分钟

PHP虽然是弱类型语言,但是也可以在参数前面加上类型声明,如果给定的的值类型不对,在PHP 7中将会抛出一个TypeError异常,但是今天发现类型声明前面可以加一个 ?,没有找到相关的文档说明,比如:

function test(string $a, ?string $b)
{
    return $a . $b;
}

经试验发现 $a 和 $b 的的区别在于 $a的传值不能是null,而$b可以传一个null值,也就是说 “?string” 的意思是 null 或string类型

本地PHP版本为7.2