我希望这可行,但它不是......我做错了什么阻止了PhpStorm为全局对象$G_myobject
提供自动完成的类成员提示? IDE的版本是2016.3.2
file1.php
namespace sysbase;
$a = true;
if ( $a ) {
$G_myobject = new SomeClass();
}
file2.php
namespace sysbase;
require_once file1.php
$b = true;
global $G_myobject; //without this line, the IDE complains 'unknown variable'
if ( $b ) {
$G_myobject-> .... //not getting any class member hints here, in the IDE...
}
答案 0 :(得分:0)
因为phpStorm无法处理 if 语句 if 中的对象,所以只能通过phpStorm在if范围内看到。所以你应该从 if 子句中初始化你的对象。请尝试使用以下代码获取file1.php它应该可以使用
$G_myobject = new SomeClass();
$a = true;
if ( $a ) {
$G_myobject = new SomeClass();
}
答案 1 :(得分:0)
因为PHPStorm不知道对象/数据类型$G_myobject
是什么(在file2.php的上下文中),所以它不知道要提供什么提示。
您可以像'Ali insan Soyaslan'建议的那样做,或者您必须使用/** @var Classname $variableName */
注释符号键入提示您的变量,以便PHPStorm知道它是什么。在您的情况下,它将如下:
namespace sysbase;
require_once file1.php
$b = true;
/** @var SomeClass $G_myobject */
global $G_myobject;
if ($b) {
$G_myobject-> .... //should now get hints
}