class BetterDOMDocument extends DOMDocument
{
function __construct($version = null, $encoding = null) {
parent::__construct($version, $encoding);
}
}
Этот код создаст заголовок XML с пустым атрибутом версии.
Однако я не могу просто определить конструктор как:
function __construct($version, $encoding) {}
Потому что теперь PHP жалуется на использование неопределенной переменной, если я хочу использовать этот конструктор без передачи каких-либо аргументов.
DOMDocument
не требует передачи $version
, он будет использовать значение по умолчанию, если я не передам значение. Как я могу переопределить конструктор, сохранив неизменной обработку аргументов базового класса, не дублируя определенные значения по умолчанию?
Меня это интересует не с точки зрения проблемы, с которой я застрял и которая требует обходного пути, а с точки зрения дизайна языка PHP. Можно ли и как воспроизвести поведение DOMDocument в PHP, или есть что-то особенное в том, как внутренний код может работать с неопределенными значениями?