PhpStorm docs提示指定方法的结果

时间:2017-05-24 12:46:27

标签: php phpstorm phpdoc type-hinting

PhpStorm是否可以理解具有指定参数的方法的结果,或者从特定类调用以了解在PHPDoc中定义的结果?

例如:

class demo {
    public static function getInstance($className)
    {
        return $className::Instance();
    }
}
class someClass {
    public function Instance() {
        return new someClass();
    }
}

class otherClass {
    public function Instance() {
        return new otherClass();
    }
}

demo::getInstance('someClass'); // PHPstorm should understand this would return someClass
demo::getInstance('otherClass'); // PHPstorm should understand this would return otherClass

目前我的PhpStorm说

  

在字符串中找不到方法getInstance。

对于代码提示,我希望PhpStorm能够根据参数值了解返回的类。把这些数据放在PHPDoc或类似的东西中就好了,请不要使用其他方法。

1 个答案:

答案 0 :(得分:2)

首先,静态调用非静态方法。

其次,您可以注意返回类型,如下所示:

/**
 * @return someClass|otherClass
 */
public static function getInstance($className)
{
    return $className::Instance();
}