var_dump の出力結果の見方、使い方
var_dump は、プログラムをデバッグしたり、カスタマイズするときにとっても便利な関数です。
どういう内容が入っていて、どういう構造なのかわかります。
例えば、var_dump の出力結果が以下のようだったとします。
var_dump($data);
— data —
array(34) {
[“ID”]=> string(4) “1037”
[“order_zip”]=> string(8) “043-1400”
[“order_pref”]=> string(9) “北海道”
[“order_address1”]=> string(18) “奥尻郡奥尻町”
[“order_delivery”]=> string(456) “a:15:{s:5:”name1″;s:6:”試験”;s:5:”name2″;s:6:”太 ・・・
:
この var_dump の出力結果によって、$data は、
$data[‘ID’]
$data[‘order_zip’]
$data[‘order_pref’]
$data[‘order_address1’]
$data[‘order_delivery’]
といった連想配列であることがわかります。
ですが、order_delivery を見てください。
文字型っていうのはわかりますが、その中身をどうやって抜き出すのだ?
order_delivery は、他と異なり”シリアライズ”されて保管されています。
order_delivery の中の name2 を取り出す場合は、以下のように書きます。
$obj = unserialize($data[‘order_delivery’]);
echo $obj[‘name2’];
シリアライズされたデータは、アンシリアライズすることで参照できるようになります。
値を変更して戻す時は、シリアライズしたものを変数に代入するという手間がかかります。
$obj[‘name2’] = ‘new name’;
$data[‘order_delivery ‘] = $obj->serialize();
こんな感じに書きます。
どういう内容が入っていて、どういう構造なのかわかります。
例えば、var_dump の出力結果が以下のようだったとします。
var_dump($data);
— data —
array(34) {
[“ID”]=> string(4) “1037”
[“order_zip”]=> string(8) “043-1400”
[“order_pref”]=> string(9) “北海道”
[“order_address1”]=> string(18) “奥尻郡奥尻町”
[“order_delivery”]=> string(456) “a:15:{s:5:”name1″;s:6:”試験”;s:5:”name2″;s:6:”太 ・・・
:
この var_dump の出力結果によって、$data は、
$data[‘ID’]
$data[‘order_zip’]
$data[‘order_pref’]
$data[‘order_address1’]
$data[‘order_delivery’]
といった連想配列であることがわかります。
ですが、order_delivery を見てください。
文字型っていうのはわかりますが、その中身をどうやって抜き出すのだ?
アンシリアライズ
order_delivery は、他と異なり”シリアライズ”されて保管されています。
order_delivery の中の name2 を取り出す場合は、以下のように書きます。
$obj = unserialize($data[‘order_delivery’]);
echo $obj[‘name2’];
シリアライズされたデータは、アンシリアライズすることで参照できるようになります。
値を変更して戻す時は、シリアライズしたものを変数に代入するという手間がかかります。
データのシリアライズ
$obj[‘name2’] = ‘new name’;
$data[‘order_delivery ‘] = $obj->serialize();
こんな感じに書きます。