php7 void 返回类型不起作用?

2022-08-30 18:11:35

我在php7中的返回类型有问题,特别是“void”。

它适用于所有其他类型的,int,string,null,bool,class对象。

但是当我使用 void 时,它期望我返回对象 void 的实例,但实际上它不应该期望任何返回,因为这就是 void 的用途。

注意:我运行的是 PHP 7.0.3

这是代码:

   public static function setResponseCode(int $code) : void
    {
        http_response_code($code);

    }

错误消息为:

Uncaught TypeError: CodeBase\HttpRequester::setResponseCode() 的返回值必须是 void 的实例,在 /var/www/html/src/HttpRequester 中不返回任何值.php堆栈跟踪:#0 /var/www/html/index.php(103): CodeBase\HttpRequester::setResponseCode(500) #1 {main} 在 /var/www/html/src/HttpRequester.php 第 86 行


答案 1

Void 返回类型适用于 PHP 7.1(当您询问此问题时,该版本尚未发布)。从 RFC

版本: 0.2.1
日期: 2015-02-14 (v0.1, 后来撤回), 2015-10-14 (v0.2, revival)
作者: Andrea Faulds, ajf@ajf.me
状态: 已实施 (PHP 7.1)


答案 2

我刚刚在这里找到了答案:https://wiki.php.net/rfc/void_return_type

这将是 PHP 7.1 中的一个功能。


推荐