Php 在stdClass中创建的Annonate字段?
执行Php 在stdClass中创建的Annonate字段?,php,netbeans,ide,phpdoc,Php,Netbeans,Ide,Phpdoc,执行$foo=新foo时,是否可以对Phpdoc进行注释,以便IDE可以自动完成到$foo->bar()->test?对不起,目前无法用phpDocumentor或NetBeans理解的自定义注释格式来记录关联数组或stdClass对象 从设计角度来看,使用适当的类可能是有意义的: class Foo { public function bar(): \stdClass { $obj = new \stdClass; $obj->test =
$foo=新foo时
,是否可以对Phpdoc进行注释,以便IDE可以自动完成到$foo->bar()->test
?对不起,目前无法用phpDocumentor或NetBeans理解的自定义注释格式来记录关联数组或stdClass
对象
从设计角度来看,使用适当的类可能是有意义的:
class Foo
{
public function bar(): \stdClass
{
$obj = new \stdClass;
$obj->test = 'test';
return $obj;
}
}
如果根本不需要逻辑,则类可以为空:
class Bar
{
/**
* @var string
*/
public $test;
}
class Foo
{
public function bar(): Bar
{
$obj = new Bar;
$obj->test = 'test';
return $obj;
}
}
否则,您总是可以使用一个存根文件欺骗IDE,该存根文件定义了一个伪类,但从未实际执行过,然后假装您的变量属于该类:
/**
* @property string $test
*/
class Bar
{
}
…其中,/*@var$bar*/
用于NetBeans 8和更早版本,而/**@var$bar*/
用于NetBeans 10(和许多其他IDE)
$foo = new Foo;
/* @var $bar Bar *//** @var Bar $bar */
$bar = $foo->bar();
$bar->…