7、序列化
你有沒有遇到過需要在數(shù)據(jù)庫或文本文件存儲(chǔ)一個(gè)復(fù)雜變量的情況?你可能沒能想出一個(gè)格式化字符串并轉(zhuǎn)換成數(shù)組或?qū)ο蟮暮梅椒ǎ琍HP 已經(jīng)為你準(zhǔn)備好此功能。有兩種序列化變量的流行方法。下面是一個(gè)例子,使用 serialize() 和 unserialize() 函數(shù):
// a complex array $myvar = array( 'hello', 42, array(1,'two'), 'apple' );
// convert to a string $string = serialize($myvar);
echo $string; /* prints a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";} */
// you can reproduce the original variable $newvar = unserialize($string);
print_r($newvar); /* prints Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two )
[3] => apple ) */
這是原生的 PHP 序列化方法。然而,由于 JSON 近年來大受歡迎,PHP5.2 中已經(jīng)加入了對(duì) JSON 格式的支持。現(xiàn)在你可以使用 json_encode() 和 json_decode() 函數(shù):
// a complex array $myvar = array( 'hello', 42, array(1,'two'), 'apple' );
// convert to a string $string = json_encode($myvar);
echo $string; /* prints ["hello",42,[1,"two"],"apple"] */
// you can reproduce the original variable $newvar = json_decode($string);
print_r($newvar); /* prints Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two )
[3] => apple ) */
這將更為行之有效,尤其與 JavaScript 等許多其他語言兼容。然而對(duì)于復(fù)雜的對(duì)象,某些信息可能會(huì)丟失。
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 9個(gè)必須知道的實(shí)用PHP函數(shù)和功能 [3] 下一頁 9個(gè)必須知道的實(shí)用PHP函數(shù)和功能 [5]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|