在 PHP 中,序列化將資料結構轉換為字串,而反序列化將字串還原為資料結構,實現資料的持久化和傳輸。序列化函數 serialize 將資料結構轉換為字串,而 unserialize 函數則從字串還原序列化後的資料。序列化可用於資料持久化(儲存至檔案)和資料傳輸(透過 HTTP POST 請求)。
PHP 資料結構:序列化與反序列化的藝術
在PHP 中,序列化是將資料結構轉換為字串的過程,而反序列化則是將字串還原為資料結構的過程。它們一起實現了資料的持久化和傳輸。
序列化
序列化將複雜的 PHP 資料結構轉換為字串,該字串可以儲存在檔案或資料庫中,或透過網路傳輸。以下是如何使用serialize
函數進行序列化的範例:
$data = ['name' => 'John Doe', 'age' => 30]; $serialized = serialize($data);
這將建立一個包含序列化的資料的字串,儲存在$serialized
變數中。
反序列化
要從字串還原序列化的數據,可以使用unserialize
函數:
$unserialized = unserialize($serialized);
這將建立一個新的資料結構,包含與原始資料結構相同的資料。
實戰案例:資料持久化
序列化允許將資料持久化到檔案中,以便以後讀取。這對於快取資料或創建永續會話非常有用。例如,要將序列化資料儲存到檔案:
file_put_contents('data.txt', $serialized);
以後可以從檔案中讀取資料並反序列化:
$data = unserialize(file_get_contents('data.txt'));
實戰案例:資料傳輸
序列化也可用於透過網路傳輸資料。例如,要透過HTTP POST 請求傳輸序列化資料:
$post_data = ['name' => 'John Doe', 'age' => 30]; $serialized_data = serialize($post_data); $params = ['data' => $serialized_data];
在接收端,使用unserialize
函數反序列化資料:
$unserialized_data = unserialize($_POST['data']);
透過使用序列化和反序列化,您可以輕鬆地將PHP 資料結構持久化到檔案中,或透過網路傳輸,以實現資料的可靠傳輸和儲存。
以上是PHP資料結構:序列化與反序列化的藝術,實現資料持久化與傳輸的詳細內容。更多資訊請關注PHP中文網其他相關文章!