PHPDoc 可选参数
Posted
技术标签:
【中文标题】PHPDoc 可选参数【英文标题】:PHPDoc optional parameter 【发布时间】:2012-11-06 15:20:06 【问题描述】:在 SO 上已经有 2 个此类类似问题,但似乎没有一个答案有效。
phpDoc 似乎没有将我的函数中的可选参数识别为可选参数,例如:
/**
* Opens the connection and sets encoding
*
* @param string $encoding Encoding.
*/
public function __construct($encoding='UTF-8')
$this->connect_mysqli();
$this->set_encoding_mysqli($encoding);
它不应该将 $encoding 识别为可选的还是我在这里遗漏了什么?我真的尝试谷歌并阅读文档,但我发现的是:
如果你没有在实际代码中指明参数是可选的(通过“$paramname = 'a default value'”),那么你应该在参数的描述中提到参数是可选的。
所以我认为我的代码没有问题,但我在文档中得到的只是: "__construct(string $encoding)", 参数可选的地方没有符号。
【问题讨论】:
【参考方案1】:严格来说,PHP 不知道“可选参数”,而是有默认值的参数,在调用函数或方法时可以省略。好的,最后是一个可选参数,但是你的
@param string $encoding Encoding.
在这里是完全正确的,因为默认值是一个字符串。文档试图告诉您的是,您应该像自己一样提及它
@param string $encoding (optional) Encoding.
我同意你的观点,像这样的符号
__construct([$encoding])
或
__construct($encoding = 'UTF-8')
会很好。您可以发布错误报告
https://github.com/phpDocumentor/phpDocumentor2/issues?state=open
更新:意识到这已经提到了https://github.com/phpDocumentor/phpDocumentor2/search?q=optional&type=Issues
【讨论】:
好吧,比我差。我认为 PHPDocumentor 已经内置了这个功能,并且认为我做错了什么。如果不接受您的回答,将保持开放一段时间,以防有人很快出现一些新信息。谢谢 支持添加到最新版本的 PHPDocumentor。见github.com/siad007/template.clean/commit/… 可以用新的注释更新吗?这里给出的链接都没有明显的答案。以上是关于PHPDoc 可选参数的主要内容,如果未能解决你的问题,请参考以下文章