我创建自变量类(在受控环境中)IDE静态分析:像这样动态实例化类
$controller = new $controllerClassName();
但我的IDE不知道是什么类型的类。所以,我想知道是否有方法来识别类(也许我可以创建一个接口)。
这就是我想做的事:
$controller = (InterfaceController) new $controllerClassName();
编辑:我使用PhpStorm IDE
解决方案:
由于yivi建议,我已经使用PHP-Doc注释,所以现在它的工作是:
$controller = new $controllerClassName();
/** @var MyInterface $controller */
请注意,“MyInterface”可能是一个类或接口。
此外,我试着做下面的代码,但没有工作。似乎注释必须位于变量的同一个块中:
/**
* @param string $var1
* @param string $var2
* ...
* @var MyInterface $controller
*/
function thisIsAFunction($var1, $var2, ...) {
...
$controller = new $controllerClassName(); // <- Class still unknown
...
}
如果问题只涉及您的IDE,你应该肯定地说,它是。我不太了解PHP,但是使用java + eclipse有一些注释可以帮助IDE的静态分析,并且在编译的代码中没有副作用。这些注释特定于IDE,并且在另一个下面不起作用。 – Aaron