解析 可调用 由 yaml_parse()、yaml_parse_file() 或 yaml_parse_url() 函数调用,当遇到注册的 YAML 标签时。回调会传递标记实体的值、标签以及指示标量实体样式的标志。回调必须返回 YAML 解析器应为此实体发出的数据。
示例 #1 解析回调示例
<?php
/**
* 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($yaml, 0, $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" }