这里已经有两个类似的问题了,但是没有一个答案是可行的。
例如,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)",在任何地方该参数都是可选的。
发布于 2012-11-18 15:12:43
严格地说,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
https://stackoverflow.com/questions/13441333
复制相似问题