PHPDoc类型提示对象的数组?
因此,在PHPDoc中,可以在成员变量声明之上指定@var
来提示其类型。 然后一个IDE,例如。 PHPEd会知道它正在处理什么类型的对象,并能够提供对该变量的代码洞察。
<?php
class Test
{
/** @var SomeObj */
private $someObjInstance;
}
?>
这很有效,直到我需要对一组对象做同样的事情,以便在稍后迭代这些对象时能够得到适当的提示。
那么,有没有办法声明一个PHPDoc标签来指定成员变量是SomeObj
的数组? @var
阵列是不够的,并且@var array(SomeObj)
似乎并不是有效的,例如。
你可以做的最好的就是说,
foreach ($Objs as $Obj)
{
/* @var $Obj Test */
// You should be able to get hinting after the preceding line if you type $Obj->
}
我在Zend Studio中做了很多。 不知道其他编辑,但它应该工作。
在JetBrains的PhpStorm IDE中,可以使用/** @var SomeObj[] */
,例如:
/**
* @return SomeObj[]
*/
function getSomeObjects() {...}
phpdoc文档推荐了这种方法:
指定包含单个类型,Type定义通知读者每个数组元素的类型。 然后,只有一个类型被期望作为给定数组的元素。
例如: @return int[]
Netbeans暗示:
您可以在$users[0]->
上获得代码完成,并为$this->
获得一组User类的代码。
/**
* @var User[]
*/
var $users = array();
当您完成$this->...
时,您还可以在类成员列表中看到数组的类型$this->...