【发布时间】:2016-02-10 01:56:35
【问题描述】:
PHP 7 引入了return type declarations。这意味着我现在可以指示返回值是某个类、接口、数组、可调用或新可提示的标量类型之一,这对于函数参数是可能的。
function returnHello(): string {
return 'hello';
}
通常情况下,值并不总是存在,您可能会返回某种类型的东西,或者返回 null。虽然您可以通过将参数的默认值设置为 null (DateTime $time = null) 来使参数为空,但似乎没有办法为返回类型执行此操作。确实是这样,还是我不知何故找不到该怎么做?这些不起作用:
function returnHello(): string? {
return 'hello';
}
function returnHello(): string|null {
return 'hello';
}
【问题讨论】:
-
PHP7 还不允许可空返回类型,但是有一个 RFC 旨在解决 PHP 7.1 here 中的这个问题。建议的符号将是
function returnString(?string $stringNull) : ?string { return $stringNull;} -
我现在已经通过在我的应用程序中滥用异常来模拟可空性。如果你也很傻,这可能有用:github.com/JeroenDeDauw/OhMyPhp/blob/master/src/…
-
也许使用 PHP7
Trowable接口可能更有意义(具体来说,扩展TypeError)
标签: php nullable return-type type-hinting php-7