L'analyse des fonctions de rappel est invoquée par les fonctions yaml_parse(), yaml_parse_file() ou yaml_parse_url() lorsqu'une balise YAML enregistrée est rencontrée. La fonction de rappel est appelée avec la valeur de l'entité de la balise, la balise, et les drapeaux indiquant le type scalaire de l'entité. La fonction de rappel doit retourner les données que l'analyseur YAML doit émettre pour cette entité.
Exemple #1 Exemple d'analyse de fonction de rappel
<?php
/**
* Fonction de rappel analysant une balise YAML.
* @param mixed $value Données depuis le fichier YAML
* @param string $tag Balise émise par la fonction de rappel
* @param int $flags Type scalaire de l'entité (voir YAML_*_SCALAR_STYLE)
* @return mixed Valeur que l'analyseur YAML doit émettre pour la valeur donnée
*/
function tag_callback ($value, $tag, $flags) {
var_dump(func_get_args()); // débogage
return "Hello {$value}";
}
$yaml = <<<YAML
greeting: !example/hello World
YAML;
$result = yaml_parse($yaml, 0, $ndocs, array(
'!example/hello' => 'tag_callback',
));
var_dump($result);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
array(3) { [0]=> string(5) "World" [1]=> string(14) "!example/hello" [2]=> int(1) } array(1) { ["greeting"]=> string(11) "Hello World" }