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->...

链接地址: http://www.djcxy.com/p/10043.html

上一篇: PHPDoc type hinting for array of objects?

下一篇: Can't operator == be applied to generic types in C#?