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

2022-08-30 20:29:27

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

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

<?php
class A
{
    private function _iAmUsed()
    {
        //Do Stuff...
    }

    public function run($whoAreYou)
    {
        $methodName = '_iAm' . $whoAreYou;
        if (method_exists($this, $methodName)) {
            $this->$methodName();
        }
    }
}

$a = new A();
$a->run('Used');
?>

在这个片段中,PHPStorm会告诉我“未使用的私有方法_iAmUsed”,而实际上,它被使用了......我怎样才能通过添加PHPDocs之类的东西,让我的IDE了解我的方法实际上是在使用的?

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

<?php
$a->run($_POST['whoYouAre']); //$_POST['whoYouAre'] == 'Used'
?>

多谢!


答案 1

将 phpdoc 中使用的方法标记为@used示例

/**
* @uses  _iAmUsed()
* @param string $whoAreYou
*/ 
public function run($whoAreYou)
{
    $methodName = '_iAm' . $whoAreYou;
    if (method_exists($this, $methodName)) {
        $this->$methodName();
    }
}

答案 2

在方法上方添加注释:noinspection

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

或者,在运行代码分析后,您可以右键单击结果窗口中的任何检查,然后选择让PHPStorm添加正确的注释本身。有关详细信息,请参阅 http://www.jetbrains.com/phpstorm/webhelp/suppressing-inspections.htmlSuppress for statement


推荐