Устанавливает обработчик начального и конечного элементов

# xml_set_element_handler

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

xml_set_element_handler — Устанавливает обработчик начального и конечного элементов

### Описание

function xml_set_element_handler(XMLParser `$parser`, callable|string|null `$start_handler`, callable|string|null `$end_handler`): true

Функция устанавливает функцию-обработчик элементов для XML-анализатора `parser`.

Параметр `start_handler` вызывается при открытии нового XML-элемента. Параметр `end_handler` вызывается при закрытии XML-элемента.

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

`parser`
  XML-парсер.
`start_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-выражении.

  Сигнатуру обработчика определяют вот так:

  function start_element_handler(XMLParser `$parser`, string `$name`, array `$attributes`): void
  `parser`
    XML-парсер, которым вызывается обработчик.
  `name`
    Содержит имя элемента, для которого вызывается этот обработчик. Если для этого синтаксического анализатора действует приведение к единому регистру, то имя элемента будет в верхнем регистре.
  `attributes`
    Ассоциативный массив с атрибутами элемента. Массив пуст, если у элемента нет атрибутов. Ключи этого массива — имена атрибутов, значения — значения атрибутов. Имена атрибутов приводятся к единому регистру по тем же критериям, что и имена элементов. Значения атрибутов не приводятся к одному регистру. Порядок извлечения атрибутов `attributes` идентичен порядку объявления атрибутов.
`end_element`

  При передаче значения `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-выражении.

  Сигнатуру обработчика определяют вот так:

  function end_element_handler(resource `$parser`, string `$name`): void
  `parser`
    XML-парсер, которым вызывается обработчик.
  `name`
    Содержит имя элемента, для которого вызывается этот обработчик. Если для этого синтаксического анализатора действует приведение к единому регистру, то имя элемента будет в верхнем регистре.

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

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

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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open