xml_set_default_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_default_handlerУстановка обработчика по умолчанию

Описание

xml_set_default_handler(XMLParser $parser, callable|string|null $handler): true

Задаёт обработчик по умолчанию для XML-анализатора parser.

Список параметров

parser

XML-парсер.

handler

При передаче значения null обработчик возвращается в состояние по умолчанию.

Внимание

Пустая строка тоже сбросит обработчик, однако начиная с PHP 8.4.0 передача в параметр пустой строки устарела.

Функция установит как обработчик функцию, на которую указывает callable-выражение, если в параметр handler передали значение, которое вызывается как функция.

Параметр handler принимает строку (string) с названием метода объекта, который установили функцией xml_set_object().

Внимание

Начиная с PHP 8.4.0 передача в параметр строки с названием метода устарела.

Внимание

Начиная с PHP 8.4.0 корректность callable-выражения проверяется при установке, а не при вызове обработчика. Поэтому вызвать функцию xml_set_object() потребуется до установки строки с названием метода, который вызывается как callback-функция. Однако, поскольку такое поведение тоже устарело с PHP 8.4.0, вместо передачи строки с названием метода рекомендуют указывать метод в правильном callable-выражении.

Сигнатура обработчика должна быть:

handler(XmlParser $parser, string $data): void
parser
XML-парсер, которым вызывается обработчик.
data
Параметр data содержит данные в виде текстовой строки. Это может быть объявление XML, объявление типа документа, сущности или другие данные, для которых не существует другого обработчика.

Возвращаемые значения

Функция возвращает логическое значение true.

Список изменений

Версия Описание
8.4.0 Передача в параметр handler строки (string), которую невозможно вызывать как callable-выражение, устарела; теперь рекомендуют передавать в параметр правильное callable-выражение для установки метода или null для сброса обработчика.
8.4.0 Корректность обработчика handler как callable-выражения теперь проверяется при установке обработчика, а не при вызове.
8.0.0 Параметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).