Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...

When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

Parse callbacks

Parse callbacks are invoked by yaml_parse(), yaml_parse_file() or yaml_parse_url() functions when a registered YAML tag is encountered. The callback is passed the tagged entity's value, the tag, and flags indicating the scalar entity style. The callback must return the data that the YAML parser should emit for this entity.

Example #1 Parse callback example

 * Parsing callback for yaml tag.
 * @param mixed $value Data from yaml file
 * @param string $tag Tag that triggered callback
 * @param int $flags Scalar entity style (see YAML_*_SCALAR_STYLE)
 * @return mixed Value that YAML parser should emit for the given value
function tag_callback ($value$tag$flags) {
var_dump(func_get_args()); // debugging
return "Hello {$value}";

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

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


The above example will output something similar to:

array(3) {
  string(5) "World"
  string(14) "!example/hello"
array(1) {
  string(11) "Hello World"

PHP Manual