這可能是一個奇怪的問題,但在我們的系統,我們使用加載器類來獲得我們班回:演員的變量
$Class = core::load('ClassName'); //returns an instance of the class ClassName
這可能不是最好的辦法,但正如我所說它一直在這裏,所以改變這將是一件很重要的事情。除此之外,它對我們來說是完美的。唯一的問題是PHPStorm無法將$Class
識別爲ClassName
的實例。有沒有什麼辦法可以在php中進行類似的操作?
$Class = (ClassName)core::load('ClassName');
我也使用PHPStorm,版本8.0.2,如果我編寫例如'$ template = BS_Lib_Template :: getInstance($ rTemplate-> id);','$ template'被識別。我認爲你的PHPStorm設置肯定有問題。 –
快速提示:常用的方法是命名以大寫字母開頭的類,而實例,變量等以小寫開頭,所以我建議重構,因爲它有助於閱讀源代碼。你的行可以讀取'$ myclass =(ClassName)Core :: load('ClassName');' –
@YUNOWORK你的情況完全不同。在您的情況下,IDE可能會自動檢測到返回類型(或者您可以通過PHPDoc的'@return MyClass'手動描述返回類型)。在OP的情況下,它是一個工廠,其中同一個方法根據參數返回不同類的實例。 – LazyOne