PHP linter用于未定义的变量/关联键

时间:2019-09-20 23:10:15

标签: php static-analysis

我们正在寻找一个PHP linter,并且我们正在追究导致E_NOTICE的一个特殊问题,其中很多是这样的:

    if($undef_variable)...
    if($assoc['undef_key'])...
    $undef_variable?...:...
    $assoc['undef_key']?...:...

从功能上讲,代码可以完美运行,因此,如果这些工具还能够用即时替换此类事件,例如

   if($undef_variable??null)

那将是巨大的帮助。 一些代码在模板中,这些模板包含在一些预设变量中(总是一样)。因此,理想情况下,该工具还将允许配置一些可用的全局命名空间变量。 该工具应该完全理解PHP7语法,尤其是匿名函数。

至少,我们需要生成一个列表,该列表列出了每次将变量用作布尔条件且未在同一范围内定义的情况,以及每次将数组键用作布尔条件的情况。

1 个答案:

答案 0 :(得分:1)

Phpcs- PhpCodeSniffer可以用于此目的。您需要为此配置一个规则。在这里找到它-Phpcs

检查此规则- https://github.com/sirbrillig/phpcs-variable-analysis

如果使用PhpStorm,则它在“检查”中具有一个选项。 https://www.jetbrains.com/help/phpstorm/php-undefined-variable.html