PHP Conference Japan 2024

解析回调

解析 可调用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"
}
添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top