var_export

var_export関数:変数の文字列表現を取得する

使い方

//出力する場合
var_export( $var );
//戻り値を取得する場合
$exported = var_export( $var, true );

この関数は、第1引数に変数を渡すとその変数の文字列表現を作成してくれます。
第2引数は戻り値を返すか、出力するかを指定するための引数です。
第2引数を省略したり第2引数にfalseを指定するとvar_dump関数みたいに出力されますが、
trueを指定すると戻り値が返ります。

例えばこのような感じです。

var_export関数の出力結果/戻り値

array (
  'pencil' => '鉛筆',
  'eraser' => '消しゴム',
  'ruler' => '定規',
)

var_dump関数の出力結果

array(3) {
  ["pencil"]=>
  string(6) "鉛筆"
  ["eraser"]=>
  string(12) "消しゴム"
  ["ruler"]=>
  string(6) "定規"
}

よく見れば気づきますが、var_export関数はPHPのコードとしてそのまま取り込める形式(変数の文字列表現)で出力してくれるのです。
なので、eval関数なんかを使うとそのまま取り込むことができます。こんな風に↓

<?php
$items = array('pencil' => '鉛筆', 'eraser' => '消しゴム', 'ruler' => '定規');
//文字列表現に変換
$exported_items = var_export($items, true);

$copy_items = null;
//PHPコードを文字列で作成
$php_code = sprintf("\$copy_items = %s;", $exported_items);
//PHPコードとして評価
eval($php_code);

var_dump($copy_items);

まぁ、間違いなく仕事でこんなコード書いたら殴られますが・・・
注意点として、文字列表現のオブジェクトを再現するには、そのクラスに__set_stateと言う名前の静的メソッドを実装しなければなりませんので若干手間がかかります。

__set_stateメソッドの作り方 (公式サイト)

使いどころ

変数の値をダンプしたいけど、画面には出力したくない。そんなときにはvar_export関数で文字列表現に変換してからログに出力すればいいんです。
この関数を使って出力した値を再現するには、そのログの文字列を使って疑似的に再現することもできます。
結構使いどころとしてはたくさんありますので、この関数に関してはあんまり難しく考えずどんどん使ってください。
ただし、ログの出力しすぎによるパフォーマンス劣化にはお気をつけて。

公式サイト
http://jp1.php.net/manual/ja/function.var-export.php