PHP中使用类中的常量值的默认函数值的最佳实践

PHP中使用类中的常量值的默认函数值的最佳实践,php,phpstorm,phpstorm-2016.3,Php,Phpstorm,Phpstorm 2016.3,PhpStorm在下面的红色代码段中突出显示了$requestType,我不明白为什么。可能是PhpStorm中的一个bug?也许这样定义默认函数值不是一个好的做法 class HttpClient { const RequestTypes = [ 'DEFAULT' => 'default', 'JSON' => 'json' ]; public function makeRequest( string $r

PhpStorm在下面的红色代码段中突出显示了
$requestType
,我不明白为什么。可能是PhpStorm中的一个bug?也许这样定义默认函数值不是一个好的做法

class HttpClient
{
    const RequestTypes = [
        'DEFAULT' => 'default',
        'JSON' => 'json'
    ];

    public function makeRequest(
        string $requestType = self::RequestTypes['DEFAULT']
    ): Response {

        // The function

    }
}
错误消息是
字符串类型参数的默认值只能是string或NULL

显然,
['DEFAULT']
值是一个字符串,但仍然给出了一个错误


您认为如何?

正如所评论的,这似乎是一个已在上报告的现有PhpStorm错误。谢谢

试试PhpStorm 2017.1 RCWell,这是一个激进的解决方案,但它不起作用,直到突出显示为止。无论如何,谢谢,现在我使用的是最新版本\o/您是否在项目设置中设置了PHP语言级别7?是的,当前设置为
7.1
。如果对该文件运行
PHP-l
,是否会收到任何警告?我认为这将使用PHP的内置linter。其他一些编辑器/IDE将此作为PHP检查的基础。问题可能会以“无效”或类似的方式关闭,因为您的代码是最佳实践,这只是PHP Storm中的错误将其标记为错误。我已将问题标记为关闭。不是100%确定我选择了正确的原因,但是…我认为它不适合堆栈溢出,因为我们已经在PHP Storm问题跟踪程序中找到了它。