Необязательный параметр 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