首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在注释中声明PHP变量类型?

为什么在注释中声明PHP变量类型?
EN

Stack Overflow用户
提问于 2011-10-23 01:34:43
回答 3查看 27.1K关注 0票数 27

我是个新手,我刚刚开始使用NetBeans来开发我的PHP代码。

突然,当我在查询中输入变量时,弹出一个对话框,要求我完成注释以保存变量类型。我做了一些调查,发现这似乎是NetBeans的一个流行特性,但我找不到任何信息来解释为什么会这样。

为什么有人要把PHP变量的类型放在注释中?它是用于开发用途,还是实际上对代码本身有好处?它是完整的,还是可选的?

EN

回答 3

Stack Overflow用户

发布于 2011-10-23 01:42:30

我猜你说的是这样的东西:

代码语言:javascript
复制
/**
 * @var SimpleXMLElement $xml
 */
private $xml;

这就是所谓的phpDoc comment。它允许您生成接口文档(like this one for instance)。此外,包括Eclipse和NetBeans在内的大多数IDE也支持该语法,并提供动态代码完成等功能。

票数 14
EN

Stack Overflow用户

发布于 2012-05-18 20:52:12

尽管netbeans将其用于自动补全,但它通常对记录代码很有用:

在本例中,您知道此方法获得了什么以及它返回了什么,但在代码内部,您不知道发生了什么

代码语言:javascript
复制
/**
 * Returns some stuff
 * @param string $someObj
 * @return array
 */
public function someMethod($someObj) {
    $factoredObj = getObject($someObj); //you are not sure what type it returns
    $resultArray = $factoredObj->toArray();
    return $resultArray;
}

可以在代码中使用/* @var $variable type */对其进行注释

代码语言:javascript
复制
/**
 * Returns some stuff
 * @param string $someObj
 * @return array
 */
public function someMethod($someObj) {
    /* @var $factoredObj someType */
    $factoredObj = getObject($someObj);
    $resultArray = $factoredObj->toArray();
    return $resultArray;
}

代码语言:javascript
复制
$factoredObj = getObject($someObj); /* @var $factoredObj someType */
票数 4
EN

Stack Overflow用户

发布于 2011-10-23 01:40:25

因为PHP是一种松散/鸭型语言,当您创建一个大型程序时,这些类型提示可以帮助您或其他人在出现问题时了解所发生的事情。例如,期望一个混合类型并发送一个整数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7861375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档