【问题标题】:JetBrains WebIDE: PHP variable type hinting?JetBrains WebIDE:PHP 变量类型提示?
【发布时间】:2010-12-21 11:01:17
【问题描述】:

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

/* @var ClassName $object */

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

/**
 * @return ClassName[]
 */

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

【问题讨论】:

  • 它适用于数组。它是否适用于遍历特定类型的 ArrayIterators?

标签: php phpstorm type-hinting web-ide


【解决方案1】:

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

/** @var ClassName $object */

另外,您可以在foreach($array as $var) 中注释$array 与/** @var ClassName[] $array */ 和$var 类型将自动推导出。

【讨论】:

  • 不知道方括号符号
  • 相关问题:我的 PHP 类使用魔术 getter 作为变量,我想将该 getter 变量绑定到 Class 对象,知道怎么做吗?因为我无法在我的班级中定义变量。
  • 哇.. 只是为了好玩而在谷歌上搜索,真的不希望这真的是一件事.. 我的生活中从来没有这么错,我很高兴我错了!这个功能太棒了,谢谢! :)
【解决方案2】:

如前所述,PhpStorm 将使用常规的 phpdoc 块:

/** @var ClassName $object */

不过,由于2.1,它也支持Netbeans/Eclipse/Zend @var annotations:

/* @var $object ClassName */

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

/* @var ClassName $object */

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


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

【讨论】:

猜你喜欢
  • 2013-09-28
  • 2017-05-20
  • 2010-12-20
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
  • 1970-01-01
  • 2014-09-14
相关资源
最近更新 更多