PHPDoc类型提示对象数组?

PHPDoc类型提示对象数组?

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


<?php

  class Test

  {

    /** @var SomeObj */

    private $someObjInstance;

  }

?>

这很有效,直到我需要对一个对象数组做同样的事情,以便在稍后迭代这些对象时能够获得正确的提示。


那么,有没有办法声明一个PHPDoc标记来指定成员变量是一个SomeObjs 数组?@var例如,数组是不够的,@var array(SomeObj)似乎没有效果。


米脂
浏览 843回答 3
3回答

炎炎设计

使用:/* @var $objs Test[] */foreach ($objs as $obj) {&nbsp; &nbsp; // Typehinting will occur after typing $obj->}当键入内联变量时,和class A {&nbsp; &nbsp; /** @var Test[] */&nbsp; &nbsp; private $items;}对于类属性。从09年PHPDoc(以及像Zend Studio和Netbeans这样的IDE)没有这个选项时的回答:你能做的最好的就是,foreach ($Objs as $Obj){&nbsp; &nbsp; /* @var $Obj Test */&nbsp; &nbsp; // You should be able to get hinting after the preceding line if you type $Obj->}我在Zend Studio中做了很多。不了解其他编辑,但它应该工作。

缥缈止盈

在JetBrains的PhpStorm IDE中,您可以使用/** @var SomeObj[] */,例如:/**&nbsp;* @return SomeObj[]&nbsp;*/function getSomeObjects() {...}该PHPDoc的文档建议使用此方法:如果指定包含单个类型,则Type定义会通知读者每个数组元素的类型。然后只需要一个Type作为给定数组的元素。例: @return int[]

白衣染霜花

Netbeans提示:你得到的代码完成的$users[0]->和$this->用户类的数组。/**&nbsp;* @var User[]&nbsp;*/var $users = array();完成后,您还可以在类成员列表中看到数组的类型 $this->...
打开App,查看更多内容
随时随地看视频慕课网APP