首頁 >後端開發 >php教程 >php序列化的用法總結(程式碼範例)

php序列化的用法總結(程式碼範例)

不言
不言原創
2019-01-14 13:22:194799瀏覽

序列化可以將數組等保存為數組,此外,它還可用於發送和接收郵件,這樣說可能不太好理解,本篇文章我們就來介紹關於php序列化的內容。

php序列化的用法總結(程式碼範例)

通常在資料庫中儲存陣列時會發生什麼?

嘗試在資料庫中註冊以下陣列。

["student1", "student2", "student3"]

然後嘗試再次獲取它

'Array("student1", "student2", "student3")'

我們獲取到的是字串,在沒有序列化的情況下在資料庫中註冊後,如果再次檢索它,它將成為一個字符串。

使用foreach語句取得此字串是不行的。

陣列需要作為陣列在資料庫中註冊,這時就需要使用序列化。

我們來使用序列化

要序列化,需要使用serialize函數

此外,結果取決於要序列化的資料類型。

序列化陣列

執行結果為

a:3:{i:0;s:8:"student1";i:1;s:8:"student2";i:2;s:8:"student3";}

請注意,初始[a:3]部分以[type:value ]的形式顯示。

表示陣列的型別是a。

此外,之後的顯示是陣列資料部分,由[key; 值;]表示

#序列化整數

<?php
$test = 50;
$disp = serialize($test);
echo $disp;

結果為

i:50;

序列化字串

<?php
$test = &#39;student&#39;;
$disp = serialize($test);
echo $disp;

結果為

s:7:"student";

表示字串的型別是s。

在字串的情況下也有數字,但這表示字元數。

序列化很簡單。

然後發送序列化資料或將其保存在資料庫中。

用unserialize進行反序列化

要使用序列化數據,您不能原樣使用它。

必須使用 unserialize來恢復原始型別和結構。

反序列化陣列

";
echo print_r(unserialize($disp));

為了清晰起見,顯示了序列化的$ disp,並設定換行符(df250b2156c434f3390392d09b1c9563)。

此外,$ disp被反序列化並顯示。

print_r用來顯示陣列的內容。

結果為

a:3:{i:0;s:8:"student1";i:1;s:8:"student2";i:2;s:8:"student3";}
Array ( [0] => student1 [1] => student2 [2] => student3 )1

第一行是序列化的結果,第二行是反序列化的結果。

反序列化整數

<?php
$test = 50;
$disp = serialize($test);
echo $disp;
echo "
"; echo unserialize($disp);

結果為

i:50;
50

反序列化字串

<?php
$test = &#39;student&#39;;
$disp = serialize($test);
echo $disp;
echo "
"; echo unserialize($disp);

結果為

s:7:"student";
student

恢復序列化資料很容易。

以上是php序列化的用法總結(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn