有没有办法提示WebIDE变量具有某种类型?我必须迭代对象的数组,并且没有自动完成功能。这有助于ZendStudio:
/* @var ClassName $object */
我知道JetBrains中有一个功能来声明对象数组:
/**
* @return ClassName[]
*/
但这仅适用于函数的返回类型。
Answers:
/* @var ClassName $object */
是无效的PHPDOC注释,并且在当前版本的Web IDE中未解析。使用双星号使其起作用:
/** @var ClassName $object */
此外,您还可以标注$array
在foreach($array as $var)
与/** @var ClassName[] $array */
和$var
类型将被自动推断。
如前所述,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也不再支持它们。我建议使用其他语法。