JetBrains WebIDE:PHP 变量类型提示?
Posted
技术标签:
【中文标题】JetBrains WebIDE:PHP 变量类型提示?【英文标题】:JetBrains WebIDE: PHP variable type hinting? 【发布时间】:2010-12-21 11:01:17 【问题描述】:有没有办法提示 WebIDE 变量具有某种类型? 我必须迭代一个对象数组,并且没有可用的自动完成功能。 这对 ZendStudio 有帮助:
/* @var ClassName $object */
我知道 JetBrains 中有一个功能可以声明对象数组:
/**
* @return ClassName[]
*/
但这仅适用于函数的返回类型。
【问题讨论】:
它适用于数组。它是否适用于遍历特定类型的 ArrayIterators? 【参考方案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 也不支持它们。我建议使用其他语法。
【讨论】:
前Netbeans所有者甲骨文博客上最后一次介绍这种注解风格的存档:web.archive.org/web/20200921104605/https://blogs.oracle.com/… @ReinState 答案已更新,谢谢!以上是关于JetBrains WebIDE:PHP 变量类型提示?的主要内容,如果未能解决你的问题,请参考以下文章
JetBrains 详解最新成立的 PHP 基金会,公司每年捐赠 100000 美元