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 变量类型提示?的主要内容,如果未能解决你的问题,请参考以下文章

Git 客户端在 WebIDE 中的实现

JetBrains 详解最新成立的 PHP 基金会,公司每年捐赠 100000 美元

CodeSandbox推出容器,进化为WebIDE

webIDE 第二篇博文

在SAP WebIDE Database Explorer里操作hdi实例

推荐一个WebIDE在线编程语言编译器C9.io