从PHP 7.0开始,可以可以在函数中设置返回类型。
但是您不能强制,因为该语言不支持void
返回类型,并且通过静态分析很难知道函数是否会返回不同的内容是否无效。
在PHP 7.1中,允许使用void
返回类型。这意味着现在所有功能都可以建立返回类型。
有没有一种方法可以这样配置PHP,以便在函数未建立返回类型时发出“语法错误”?
例如:
private function foo()
{
$this->dummy();
}
会引发语法错误,而这:
private function foo() : void
{
$this->dummy();
}
不会。
答案 0 :(得分:2)
您不能在PHP中强制使用此功能,但可以使用PHPCS(或类似功能)对其进行嗅探。
Slevomat Coding Standard的PHPCS嗅探对此进行了检查:
SlevomatCodingStandard.TypeHints.TypeHintDeclaration
检查是否缺少@return和/或本机返回类型提示 方法主体包含带有值的return。
答案 1 :(得分:0)
您可以和interfaces保持亲密关系。
interface testinterface {
public function testfunction() : void;
}
class testclass implements testinterface {
public function testfunction() {
echo 'foo';
}
}
将导致以下错误:
致命错误:testclass :: testfunction()的声明必须与testinterface :: testfunction()兼容:
但是,接口不能防范未在接口中定义的函数,因此必须在逻辑上确保类声明实现了接口(可以通过instanceof
operator实现)。 / p>