PHP函数附加“:”和“?” , 它有什么作用?

时间:2018-04-26 01:55:55

标签: php function

我发现了一个php文件,里面有如下函数:

public function getCharset(): ?string
{
    return $this->charset;
}

我想知道在这里做什么是:?string

1 个答案:

答案 0 :(得分:6)

这称为nullable type introduced in PHP 7.1

  

现在可以通过在类型名称前加上问号前缀来将参数和返回值的类型声明标记为可为空。这表示除了指定的类型外,NULL可以作为参数传递,也可以作为值返回。

基本上,该函数可以返回 指定的类型 null。如果它返回不同的类型,则抛出错误:

function answer(): ?int  {
    return null; // ok
}

function answer(): ?int  {
    return 42; // ok
}

function answer(): ?int {
    return new stdclass(); // error
}