803708 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

まんじうこわい@楽

まんじうこわい@楽

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Keyword Search

▼キーワード検索

Calendar

Profile

hknopage

hknopage

Free Space

Category

Freepage List

2011.09.06
XML
カテゴリ:PHP
 ネタが無いので若干放置気味にしてたらnanasiさんより古い記事にコメント頂きました。
 ちなみに古い記事では、echoやvar_dumpで出力した値を一旦バッファに溜めて変数へ保存し、その内容をファイルに保存してました。
 それ1行でできるよ!との事。

 早速ご提供いただいた方法を試してみることに
--ソース--
class test_class {
public $pubic_bool = true;
private $private_static_val = 'private val';
public $public_static_val = 'public val';

private $private_val = array('a','b','c','d');
public $public_val = array(1,2,3,4);

}

$val = new test_class();
$filename = '/tmp/kawaguchi_test_data';

//nanasiさんよりご提供の方法
file_put_contents($filename,var_export($val,true),FILE_APPEND);

//以前記事で扱った方法
ob_start();
var_dump($val);
$out=ob_get_contents();
ob_end_clean();
file_put_contents($filename,$out,FILE_APPEND);

--出力されたファイル--

test_class::__set_state(array(
'pubic_bool' => true,
'private_static_val' => 'private val',
'public_static_val' => 'public val',
'private_val' =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
3 => 'd',
),
'public_val' =>
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
),
))
object(test_class)#1 (5) {
["pubic_bool"]=>
bool(true)
["private_static_val:private"]=>
string(11) "private val"
["public_static_val"]=>
string(10) "public val"
["private_val:private"]=>
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
["public_val"]=>
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
}
}


 以前のやり方だと、バッファの開始と終了を明示的に宣言していましたが、var_exportは内部でやってくれてるみたいでコードがスッキリしそうです。
 一番の違いはvar_exportの返り値は「表現が有効なPHPコード」というところでしょうか。
 マニュアルにいくつかこういう使い方あるよんってサンプル載ってました。
 まあ詳しいことはマニュアル参照して下さい。

 デバッグとして型などを知りたい場合は以前書いた方法でvar_dumpの出力を得たりでいいと思います。
 場面によって使い分けって事ですね。

 コメントを下さったnanasiさんありがとうございました。
 大変参考になりました。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2011.09.07 01:59:20
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X