PHPDoc可选参数

问题描述 投票:30回答:1

这里有两个类似的问题,但是没有一个答案似乎有效。

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 ='默认值'”),那么你应该在参数的描述中提到参数是可选的。

所以我看到我的代码没有问题,但我在文档中得到的是:“__ construct(string $ encoding)”,在参数是可选的任何地方都没有任何符号。

php phpdoc param optional
1个回答
37
投票

严格来说,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

© www.soinside.com 2019 - 2024. All rights reserved.