ブログを作る※無料・簡単アフィリ    ブログトップ | 楽天市場
226457 ランダム
PHPメモ:var_export() (趣味・ゲーム)楽天ブログ 【ケータイで見る】 【ログイン】
まんじうこわい@楽

PR

Calendar

February 2012
SMTWTFS
   1234
567891011
12131415161718
19202122232425
26272829   
<一覧へthis monthnext>

Keyword Search

Category

Archives

Mobile

>>ケータイに
このブログの
URLを送信!

 

Recommend Item

hk1119の日記

<< 前へ次へ >>一覧コメントを書く

2011.09.06 楽天プロフィール Add to Google XML

PHPメモ:var_export()
[ 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) | コメントを書く




■コメント

お名前
タイトル
メッセージ
・メッセージ本文は全角で800文字までです。
・書き込みに際しては楽天ブログ規約の禁止事項や免責事項をご確認ください
・ページの設定によっては、プルダウンで「顔選択」を行っても、アイコンが表示されません。ご了承ください。


<< 前へ次へ >>一覧コメントを書く一番上に戻る


Powered By 楽天ブログは国内最大級の無料ブログサービスです。楽天・Infoseekと連動した豊富なコンテンツや簡単アフィリエイト機能、フォトアルバムも使えます。デザインも豊富・簡単カスタマイズが可能!

Copyright (c) 1997-2012 Rakuten, Inc. All Rights Reserved.