欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php array serialize

錢艷冰1年前7瀏覽0評論

聊到php中的數(shù)組序列化操作,不得不提到PHP的序列化和反序列化函數(shù),其中包括serialize() 和unserialize()。

Serialize() 函數(shù)是將變量序列化后獲取字符串,也就是把數(shù)組層層存儲的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為可存儲或可傳輸?shù)淖址7粗瑄nserialize() 函數(shù)是將通過serialize()函數(shù)生成的字符串,還原為原本的數(shù)據(jù)結(jié)構(gòu)。這種特殊的字符串,我們稱之為serialize字符串。

想要進(jìn)一步理解,可以看看以下的例子:

$array = array('name' =>'sam', 'age' =>25, 'city' =>'Beijing');
$serStr = serialize($array);
echo $serStr;
// output: a:3:{s:4:"name";s:3:"sam";s:3:"age";i:25;s:4:"city";s:7:"Beijing";}

在代碼中,首先定義了一個(gè)關(guān)聯(lián)數(shù)組:$array,數(shù)組中有三個(gè)元素:name,age和city,接著使用serialize()函數(shù)把數(shù)組轉(zhuǎn)化為字符串,并將其打印出來。可以看到,輸出了一個(gè)非常奇怪、雜亂無章的字符串,而這就是該數(shù)組被序列化之后的結(jié)果。

那么unserialize()函數(shù)“反序列化”,對于從serialize()函數(shù)返回的字符串反推回來最初的數(shù)據(jù)結(jié)構(gòu)的操作過程如下所示:

$serStr = 'a:3:{s:4:"name";s:3:"sam";s:3:"age";i:25;s:4:"city";s:7:"Beijing";}';
$array = unserialize($serStr);
print_r($array);
// output: Array ( [name] =>sam [age] =>25 [city] =>Beijing )

unserialize方法接受一個(gè) Serialize()方法輸出的字符串輸入。理論上unserialize()函數(shù)總是成功的,或者在不符合文本格式的情況下,觸發(fā)一個(gè)E_NOTICE級別的錯(cuò)誤。unserialize 函數(shù)不能創(chuàng)建實(shí)現(xiàn)的匿名類。使用 unserialize()可以安全地重新構(gòu)造之前存儲的對象。

我們還可以使用數(shù)組加序列的方式傳遞參數(shù),下面是一個(gè)實(shí)際的代碼示例:

$arr = array('first_name' =>'san',
'last_name' =>'tony',
'phone' =>array('123','456'),
'hobby' =>'music'
); 
echo serialize($arr); 
// a:4:{s:10:"first_name";s:3:"san";s:9:"last_name";s:4:"tony";s:5:"phone";a:2:{i:0;s:3:"123";i:1;s:3:"456";}s:5:"hobby";s:5:"music";}

在這個(gè)代碼段中,我們定義了一個(gè)關(guān)聯(lián)數(shù)組 $arr,數(shù)組中包含三個(gè)鍵值對。 注意數(shù)組中第三行的鍵 phone 其實(shí)是包含了兩個(gè)值的數(shù)組,這個(gè)數(shù)組通過 serialize() 函數(shù)序列化后,可以看到輸出的字符串中,有 a:2 表示數(shù)組中包含兩個(gè)元素。

序列化是一個(gè)非常有用的特性,常用于緩存存儲,網(wǎng)絡(luò)傳輸?shù)炔僮鳌H欢谝恍﹫鼍跋滦枰⒁鈹?shù)組中的值的種類,可序列化數(shù)據(jù)類型包括: boolean,integer,float,string,array,object 和 NULL。傳遞給 unserialize 函數(shù)的字符串,應(yīng)該不允許來自未受信任的源,以避免被植入惡意的處理程序。這個(gè)函數(shù)的使用最好規(guī)避掉來自未知和不可信的源。

以上是PHP中序列化操作的相關(guān)介紹,希望能對你有所幫助!