2024 年 PHP Conference Japan

剖析回呼

解析 可調用 物件會在遇到已註冊的 YAML 標籤時,由 yaml_parse()yaml_parse_file()yaml_parse_url() 函式呼叫。回呼函式會傳入標籤實體的值、標籤和指示純量實體樣式的旗標。回呼函式必須返回 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