PHP Nullable Types无法按预期工作

时间:2017-06-17 16:26:06

标签: php php-7

我想知道是否可以使用可空类型的新功能来更改此工作函数中的语法

function getCustomerId($id = null)
{
    return $id ?: 2;
}

echo getCustomerId();

这样的事情并不适合我。我得到错误的论点太少了。

function getCustomerId(?int $id)
{
    return $id ?: 2;
}

echo getCustomerId();

所以基本上如果没有提供参数,它返回2,但如果提供了参数,则返回该参数。

1 个答案:

答案 0 :(得分:1)

是的,有点混淆可选参数的概念与可空的概念。

可选参数意味着您无需传递它,因为它是可选的。

nullable 参数意味着虽然参数需要属于某种类型,但null也是有效的(如果它不可为空,则不会存在)。可空性并不意味着你不需要传递任何东西;你还是这样。它可以是null

如果你想要一个可选的整数参数,如果没有传递则认为是null,那么结合你的两个例子:

function getCustomerId(?int $id=null)
{
    return $id ?: 2;
}

参考:PHP > New Features > Nullable types