Callback-функции парсинга

Функций обратного вызова (callback) для парсинга вызывается функциями yaml_parse(), yaml_parse_file() или yaml_parse_url() при обнаружении зарегистрированного тега YAML. В callback-функцию передается значение тегированной записи, сам тег и флаги, определяющие скалярный тип записи. Callback-функция должна вернуть данные, которые парсер YAML должен использовать для этой записи.

Пример #1 Пример использования callback-функции парсинга

<?php
/**
 * Callback-функция парсинга для тегов yaml.
 * @param mixed $value Данные из файла yaml
 * @param string $tag Тег, для которого срабатывает функция
 * @param int $flags Стиль скаляра записи (см. YAML_*_SCALAR_STYLE)
 * @return mixed Значение, которое должен выдать парсер YAML
 */
function tag_callback ($value$tag$flags) {
  
var_dump(func_get_args()); // отладка
  
return "Hello {$value}";
}

$yaml = <<<YAML
greeting: !example/hello World
YAML;

$result yaml_parse($yaml0$ndocs, array(
    
'!example/hello' => 'tag_callback',
  ));

var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  string(5) "World"
  [1]=>
  string(14) "!example/hello"
  [2]=>
  int(1)
}
array(1) {
  ["greeting"]=>
  string(11) "Hello World"
}