在一个类中,@param是什么意思?

29

在创建类时,@param是什么意思?据我理解,它用于告诉脚本变量的数据类型以及函数返回的值是什么类型,这正确吗? 例如:

/**
 * @param string $some
 * @param array $some2
 * @return void
 */

还有没有其他的方法可以做到这一点?我想的像是:void function() { ... } 或者类似的东西。对于变量,也许可以用 (int)$test;


你应该查看 http://manual.phpdoc.org/HTMLframesConverter/default/。 - Maerlyn
请参阅phpDoc获取更多信息。 - Xeoncross
6个回答

30

@param在PHP中没有特殊的含义,通常用于注释中编写文档说明。你提供的示例正是如此。

如果您使用文档工具,它将扫描代码中的@param@summary和其他类似的值(根据工具的复杂程度),自动生成格式良好的代码文档。


所以它从未被程序执行过? - Fauzan Edris

3

我知道这已经过时了,但仅供参考,问题的第二部分答案现在是PHP7

// this function accepts and returns an int
 function age(int $age): int{

  return 18;
}

3
正如其他人所提到的,你提到的@param是注释的一部分,而不是语法上的重要部分。它只是为了向文档生成器提供提示信息。关于支持的指令和语法的更多信息,请查看PHPDoc项目。
至于你问题的第二部分...据我所知,在PHP中没有指定返回类型的方法。你也无法强制参数是特定的原始类型(字符串、整数等)。
但是从PHP 5.1开始,你可以要求参数是一个数组、一个对象或特定类型的对象。
function importArray(array $myArray)
{
}

如果您尝试使用除数组以外的任何内容调用此方法,PHP将抛出错误。

class MyClass
{
}

function doStuff(MyClass $o)
{
}

如果您试图使用除MyClass之外的任何类型的对象调用doStuff,PHP将再次抛出错误。

1

PHP完全不理会注释。它仅用于描述方法所需的参数,以使代码更易读和理解。

此外,良好的代码实践致力于使用特定名称(例如@param)来生成文档。

一些IDE将在悬停在相关方法上时,在工具提示中包含@param和其他信息。


2
PHP 并非完全无视注释。PHP 的反射 API 可以特别解释文档注释,一些项目如 Doctrine 大量使用它们进行元配置。http://www.php.net/manual/en/intro.reflection.php - redreinard

0
@param 是描述注释的一部分,告诉您输入参数类型是什么。它与代码语法无关。使用支持颜色的编辑器(如Notepad++)可以轻松地查看代码和注释。

-1
PARAM在英语中是“Parameter”的意思。 PARAM这个词的意思是“参数”,翻译成越南语是“参数”、“参数”。 PARAM代表什么? PARAM缩写中的短语是“参数”。
一些其他类型的PARAM缩写:
  • Parallel Machine:Parallel Machine - 这是一种印度超级计算机。

这并没有解释@param的含义。 - Nico Haase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接