一尘不染

PHPDoc类型提示对象数组?

php

因此,在PHPDoc中,可以@var在成员变量声明上方指定以提示其类型。然后是一个IDE,例如。PHPEd将知道它正在使用哪种类型的对象,并且能够为该变量提供代码见解。

<?php
  class Test
  {
    /** @var SomeObj */
    private $someObjInstance;
  }
?>

这非常有用,直到我以后需要遍历这些对象时,我需要对一组对象进行相同的操作才能获得正确的提示。

因此,有没有一种方法可以声明一个PHPDoc标记以指定成员变量是SomeObjs 的数组?@var例如,数组是不够的,而且@var array(SomeObj)似乎无效。


阅读 354

收藏
2020-05-26

共1个答案

一尘不染

采用:

/* @var $objs Test[] */
foreach ($objs as $obj) {
    // Typehinting will occur after typing $obj->
}

在键入内联变量时,以及

class A {
    /** @var Test[] */
    private $items;
}

用于类属性。

上一个09年的答案,当时PHPDoc(以及诸如Zend Studio和Netbeans之类的IDE)没有该选项:

你能做的最好的就是

foreach ($Objs as $Obj)
{
    /* @var $Obj Test */
    // You should be able to get hinting after the preceding line if you type $Obj->
}

我在Zend Studio中做了很多。不了解其他编辑器,但它应该起作用。

2020-05-26