因此,在PHPDoc中,可以@var在成员变量声明之上指定提示其类型.然后是一个IDE,例如.PHPEd将知道它正在使用什么类型的对象,并且能够为该变量提供代码洞察.
<?php
class Test
{
/** @var SomeObj */
private $someObjInstance;
}
?>
Run Code Online (Sandbox Code Playgroud)
这很有效,直到我需要对一个对象数组做同样的事情,以便在稍后迭代这些对象时能够获得正确的提示.
那么,有没有办法声明一个PHPDoc标记来指定成员变量是一个SomeObjs 数组?@var例如,数组是不够的,@var array(SomeObj)似乎没有效果.
这个问题是与这一个:
是否可以提示返回数组中的项类型?
例如:
/**
* MyFunction does a lot of things
*
* @param TClass1 $var1
* @param TClass2 $var2
* @return array[TClass3] //<- I'm trying to express this
*/
function MyFunction( $var1, $var2 ){
...
Run Code Online (Sandbox Code Playgroud)
我使用NetBeans作为IDE,它(像许多其他PHP IDE一样)利用上面函数的doc bloc来确定返回值的类型.
如果我能解释数组中预期的类型,我希望IDE能够为以下情况提供正确的完成:
$myTab = MyFunction( $foo, $bar );
foreach( $myTab as $itm ){
$itm->myFi| //offer the completion for a TClass3 object
}
Run Code Online (Sandbox Code Playgroud)