【发布时间】:2015-06-29 19:57:06
【问题描述】:
我正在使用 PHP 7 测试返回类型。
我创建了一个简单的脚本来测试 PHP 7 的返回类型:
<?php
Class Obj {
public function __construct(){
}
public function test(): string { //a string needs to be returned
return "ok";
}
}
function foo(): Obj { //instance of Obj needs to be returned
return new Obj();
}
$o = foo();
echo $o->test(); // output: ok
现在在其他编程语言中,当您指定返回类型 void 时,这意味着您无法返回任何内容,否则您将收到错误消息。所以我写了这个脚本:
<?php
function foo(): void {
}
foo();
现在在上面的脚本中,预期的输出什么都没有。 相反,它给了我一个致命错误:
致命错误:foo() 的返回值必须是 void 的实例,第 2 行没有返回
我的问题是(我找不到),在 PHP 7 中会有类似的void 类型吗?
【问题讨论】:
-
答案是它已经被提出,但没有走得更远......并且可能几乎与标量类型提示一样具有欺骗性:philsturgeon.uk/php/2015/02/15/php-void-much-ado-about-nothing
-
现在好像可以了。我认为他们将其添加到语言中。现在如果你在返回类型被声明为 void 时返回一些东西,即使 linter 也会抱怨。
标签: php void return-type php-7