【问题标题】:annotating a local variable in php在php中注释局部变量
【发布时间】:2012-12-16 10:37:23
【问题描述】:

我正在使用 Eclipse PDT,我想使用 Phpdoc 注释一个局部变量。

我所看到的只是我可以使用@var 甚至注释类的变量/属性 @property,但是局部变量怎么可能呢?

我该怎么做?

function foo(){
  /** @var Stock $a */
  $a->save();
}

【问题讨论】:

  • 文档/合同通常只适用于暴露的接口——例如字段和方法。

标签: php variables local phpdoc


【解决方案1】:

Phpdoc 标准不涵盖这些注释(它只涵盖带有@var 标签的类属性);但是,在 Eclipse 中是完全可能的(例如 PDT):

/* @var $variable Type */
 ^         ^        `--- type
 |      variable           
 |
 `--- single star

这也适用于所有其他 PHP IDE,如 Netbeans 或 Phpstorm,如果您与他人交换代码,这将非常有用。

示例代码:

<?php

/* @var $doc DOMDocument */
$doc->
 

示例屏幕截图(Eclipse PDT (Indigo)):

相关问答:

【讨论】:

  • 我试过这样但仍然失败:function foo(){ /* @var $a Stock */ $a->save(); }
  • @tzortzik “它失败了”是什么意思?你知道吗,它只是为了检查?
  • @tzortzik:您在 Eclipse 中使用哪个编辑器插件来编辑 PHP 文件?例如。对我来说,这完全适用于 PDT 中的代码完成(敲击 CTRL + SPACE)。给 Eclipse/DLTK 一些时间来更新,可能您需要将注释放在要使用它的变量上方的行中。至少我通常是这样做的。不在它的左边,而是在上面。就像你的问题一样。
  • @hakre:在我的第一篇文章之前,我做了你所说的一切。我什么都试过了。我使用最新版本的 Eclipse PDT。我更新了与 PHP 和 Eclipse 相关的所有内容。
  • @tzortzik:我无法解释为什么它不适合你。我只是创建了一个示例代码并添加了一个屏幕截图,它是如何在 Eclipse Indigo PDT 中为我工作的。
【解决方案2】:

这是一个老问题,但仅供参考。 您必须在当前文件中包含TypeUse 语句,以便@var 注释工作

<?php
use YourVendor\YourBundle\Entity\ProductType;

...

/* @var $product_type ProductType */
$foo = $product_type->getName();

【讨论】:

  • /* @var $product_type \YourVendor\YourBundle\Entity\ProductType */ 也可以使用
  • @marcel-djaman:是的,当然。我的回答指出,必须指明类型的完全限定名称。
猜你喜欢
  • 2020-12-05
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
相关资源
最近更新 更多