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

2022-08-30 15:54:59

我对 PHP 相当陌生,我刚刚开始使用 NetBeans 来开发我的 PHP 代码。

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

为什么有人想在注释中放置PHP变量的类型?它是用于开发用途,还是实际上有利于代码本身?它是整体的,还是可选的?


答案 1

在方法注释内的标记中添加类型将允许 NetBeans 向您显示代码完成情况。这当然是可选的,但完全记录代码始终是一个好主意。@var

编辑:NetBeans 为您自动生成注释的一个提示是使用扩展。为此,只需将光标放在要记录和键入的属性或方法的上方,然后按键。这将展开 phpDoc 样式注释并添加相应的标记。/**/**ENTER

编辑 2:可以在属性上使用标记,也可以在方法上使用标记,以便通过传递到方法中的参数达到相同的效果。@var@param

在属性上使用标记将为您提供代码提示,同时在可见的任何位置使用属性:@var

/**
 *
 * @var My_Type
 */
private $_myProperty;

在方法上使用标记将为您提供代码提示,同时使用方法中的参数:@param

/**
 *
 * @param My_Type $obj 
 */
public function myMethod($obj) {

}

另一种在提供类型安全的同时实现类似效果的方法是使用PHP的类型提示机制:

public function myMethod(My_Type $obj) {

}

请注意,此方法具有方法签名中指定的类型。NetBeans 现在将在使用标记的方法中提供相同的代码完成,如果传递到方法中的类型与指定的类型不同,PHP 将生成一个。如果您有兴趣了解有关上述错误的更多信息,请参阅PHP有关错误的文档以及如何处理它们。@paramE_RECOVERABLE_ERROR


答案 2

我猜你说的是这样的事情:

/**
 * @var SimpleXMLElement $xml
 */
private $xml;

这就是所谓的 phpDoc 注释。它允许您生成API文档(例如这个)。此外,包括 Eclipse 和 NetBeans 在内的大多数 IDE 也支持该语法,并提供动态代码完成等。


推荐