87

有没有办法提示 WebIDE 变量具有某种类型?我必须迭代一个对象数组,并且没有可用的自动完成功能。这有助于 ZendStudio:

/* @var ClassName $object */

我知道 JetBrains 中有一个功能可以声明对象数组:

/**
 * @return ClassName[]
 */

但这仅适用于函数的返回类型。

4

2 回答 2

155

/* @var ClassName $object */是无效的 PHPDOC 注释,在当前版本的 Web IDE 中不解析。使用双星号使其工作:

/** @var ClassName $object */

此外,您可以使用注释和类型将$array自动推断。foreach($array as $var)/** @var ClassName[] $array */$var

于 2009-11-30T11:28:44.020 回答
33

正如已经指出的,PhpStorm 将使用常规的 phpdoc 块:

/** @var ClassName $object */

但是,从2.1开始,它还支持 Netbeans/Eclipse/Zend @var 注释

/* @var $object ClassName */

请注意注释以/*而不是开头/**(因此,如果您使用 phpdoc 生成实际文档,它将不会显示)。此外,尽管 PhpStorm 接受任何顺序,但参数被交换:

/* @var ClassName $object */

最后但并非最不重要的一点是,它们几乎可以位于任何任意代码行之前(从技术上讲,phpdoc 块仅限于某些项目)。


编辑:截至 2019 年,Netbeans/Eclipse/Zend @var 注释似乎大多被放弃了。NetBeans 11 不再支持它们,通常其他 IDE 也不支持它们。我建议使用其他语法。

于 2014-03-26T15:48:45.170 回答