Необязательный параметр PHPDoc
здесь уже есть 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
Update: понял, что это уже упоминалось https://github.com/phpDocumentor/phpDocumentor2/search?q=optional&type=Issues