PHP:调用变量函数名(函数指针);如何告诉IDE调用了我的函数?

PHP:调用变量函数名(函数指针);如何告诉IDE调用了我的函数?,php,phpstorm,phpdoc,variable-names,Php,Phpstorm,Phpdoc,Variable Names,我目前正在尝试从PHPStorm中删除检查工具提供给我的项目中的所有错误和警告 我遇到一个片段PHPStorm在实际使用时说“未使用的私有方法xxx”,但它是以动态的方式使用的。以下是一个简化的代码片段: 在这段代码中,PHPStorm将告诉我“未使用的私有方法已使用”,而事实上,它正在使用。。。 我怎样才能通过添加phpdoc或其他什么东西,让我的IDE理解我的方法是实际使用的呢 请注意,我给了我的“run”调用一个静态字符串,但我们也可以想象: 非常感谢 在方法上方添加noinspe

我目前正在尝试从PHPStorm中删除检查工具提供给我的项目中的所有错误和警告

我遇到一个片段PHPStorm在实际使用时说“未使用的私有方法xxx”,但它是以动态的方式使用的。以下是一个简化的代码片段:


在这段代码中,PHPStorm将告诉我“未使用的私有方法已使用”,而事实上,它正在使用。。。 我怎样才能通过添加phpdoc或其他什么东西,让我的IDE理解我的方法是实际使用的呢

请注意,我给了我的“run”调用一个静态字符串,但我们也可以想象:



非常感谢

在方法上方添加
noinspection
注释:

/** @noinspection PhpUnusedPrivateMethodInspection */
private function _iAmUsed()
{
    //Do Stuff...
}

或者,在运行代码分析之后,您可以在结果窗口中的任何检查上单击鼠标右键,然后选择“抑制for语句”,以使PHPStorm添加正确的注释本身。有关更多信息,请参见将phpdoc中使用的方法标记为@used 范例


仅供参考,IDE警告只是为了让您知道可能有问题。删除所有这些代码(不管怎样,它们都是任意的)并不是一个切实可行的目标。是的,您不应该过多地迎合IDE的表面分析(在PHPStorm中,它实际上既不是静态代码检查,也不太适合PHP的动态特性)。如果您已经验证该方法是否按预期工作,只需在报告中应用“忽略此实例”。删除此类警告的“愚蠢”方法之一(由于您的动态使用)是将该方法标记为受保护的,而不是私有的。PhpStorm(以及这里的任何其他PHP IDE)无法仅使用静态(和接近静态)代码检查(如上所述)来检测这种高度动态的使用情况。这比“noinspection”标记要好得多。非常感谢。为了提供更多信息,还有一个标签“used by”,可以帮助您参考用法。同时使用“uses”和“used by”标记可以以两种方式快速导航和引用。@niconoe我似乎找不到任何关于“used by”注释的引用(至少对于PHPStorm)。你能提供更多信息吗?看起来使用的
@实际上不是一个需要手动添加的标签。它是一个自动生成的标记,用于在生成文档时提供双向引用。事实上,一旦一个方法指向另一个,我们也可以判断哪些其他方法指向该方法。例如,请参阅“查找用法”命令。如果您仍然希望添加一种方法,以便在PHPStorm中轻松地从另一个方向浏览文档,请尝试使用
@see
标记从“used”返回到“user”。
/**
* @uses  _iAmUsed()
* @param string $whoAreYou
*/ 
public function run($whoAreYou)
{
    $methodName = '_iAm' . $whoAreYou;
    if (method_exists($this, $methodName)) {
        $this->$methodName();
    }
}