YAML 形式にした値を返す

# yaml_emit

(PECL yaml >= 0.5.0)

yaml_emit — YAML 形式にした値を返す

### 説明

yaml_emit ( mixed `$data` [, int `$encoding` = YAML_ANY_ENCODING [, int `$linebreak` = YAML_ANY_BREAK [, array `$callbacks` = null ]]] ) : string

`data` で渡したデータを YAML 形式にして返します。

### パラメータ

`data`

  エンコードしたいデータ。リソース型以外の任意の型が使えます。

`encoding`

  出力時の文字エンコーディング。 `YAML_ANY_ENCODING`、 `YAML_UTF8_ENCODING`、 `YAML_UTF16LE_ENCODING`、 `YAML_UTF16BE_ENCODING` のいずれか。

`linebreak`

  出力時の改行形式。 `YAML_ANY_BREAK`、 `YAML_CR_BREAK`、 `YAML_LN_BREAK`、 `YAML_CRLN_BREAK` のいずれか。

`callbacks`

  YAML ノードの発行用のコンテンツハンドラ。 クラス名 => callable 形式の連想配列となります。 詳細は発行コールバック を参照ください。

### 返り値

成功した場合に YAML 形式の文字列を返します。

### 変更履歴

バージョン | 説明
--- | ---
1.1.0 | `callbacks` パラメータが追加されました。

### 例

例1 yaml_emit() の例

`<?php
$addr = array(
"given" => "Chris",
"family"=> "Dumars",
"address"=> array(
"lines"=> "458 Walkman Dr.
Suite #292",
"city"=> "Royal Oak",
"state"=> "MI",
"postal"=> 48046,
),
);
$invoice = array (
"invoice"=> 34843,
"date"=> 980208000,
"bill-to"=> $addr,
"ship-to"=> $addr,
"product"=> array(
array(
"sku"=> "BL394D",
"quantity"=> 4,
"description"=> "Basketball",
"price"=> 450,
),
array(
"sku"=> "BL4438H",
"quantity"=> 1,
"description"=> "Super Hoop",
"price"=> 2392,
),
),
"tax"=> 251.42,
"total"=> 4443.52,
"comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
);
var_dump(yaml_emit($invoice));
?>`

上の例の出力は、 たとえば以下のようになります。

    string(628) "---
    invoice: 34843
    date: 980208000
    bill-to:
      given: Chris
      family: Dumars
      address:
        lines: |-
          458 Walkman Dr.
                  Suite #292
        city: Royal Oak
        state: MI
        postal: 48046
    ship-to:
      given: Chris
      family: Dumars
      address:
        lines: |-
          458 Walkman Dr.
                  Suite #292
        city: Royal Oak
        state: MI
        postal: 48046
    product:
    - sku: BL394D
      quantity: 4
      description: Basketball
      price: 450
    - sku: BL4438H
      quantity: 1
      description: Super Hoop
      price: 2392
    tax: 251.420000
    total: 4443.520000
    comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
    ...
    "

### 参考

- yaml_emit_file() - YAML 形式にした値をファイルに送る
- yaml_parse() - YAML ストリームをパースする