首页 > 解决方案 > 我可以强制 PHP 7.1 语法在返回类型中要求类型提示吗?

问题描述

从 PHP 7.0 开始,可以在函数中设置返回类型。

但是你不能强制它,因为void语言不支持返回类型,静态分析很难知道一个函数是否会返回与 void 不同的东西。

在 PHP 7.1void中允许返回类型。这意味着现在所有函数都可以建立返回类型。

问题

有没有办法以这种方式配置 PHP,以便在函数没有建立返回类型时发出“语法错误”?

例如这个:

private function foo()
{
    $this->dummy();
}

会抛出语法错误,而这个:

private function foo() : void
{
    $this->dummy();
}

不会。

标签: phpsyntaxsyntax-errorreturn-typecode-cleanup

解决方案


你不能在 PHP 中强制这样做,但你可以使用 PHPCS(或类似的)来嗅探它。

PHPCS的Slevomat Coding Standard嗅探包括对此的检查:

SlevomatCodingStandard.TypeHints.TypeHintDeclaration

检查缺少的@return 和/或本机返回类型提示,以防方法主体包含返回值。


推荐阅读