JetBrains WebIDE:PHP变量类型提示?


80

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

/* @var ClassName $object */

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

/**
 * @return ClassName[]
 */

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


它适用于数组。它可以与遍历特定类型的ArrayIterators一起使用吗?
redestructa's

Answers:


143

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

/** @var ClassName $object */

此外,您还可以标注$arrayforeach($array as $var)/** @var ClassName[] $array */$var类型将被自动推断。


不知道方括号符号
SandorRacz 2014年

2
相关问题:我的PHP类对变量使用了魔术吸气剂,并且我想将该吸气剂变量绑定到Class对象,知道怎么做吗?由于我无法在课堂上定义变量。
Sanket Sahu 2014年

哇。。这个功能太酷了,谢谢!:)
Cagatay Ulubay

29

如前所述,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也不再支持它们。我建议使用其他语法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.