我創建自變量類(在受控環境中)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