複製鏈接
請複製以下鏈接發送給好友

unserialize

鎖定
unserialize是對單一的已序列化的變量進行操作,將其轉換回 PHP 的值。
外文名
unserialize
實    質
是PHP的一個函數
功    能
從已存儲的表示中創建 PHP 的值
返回值類型
integer float string array

目錄

unserialize描述

mixed unserialize [1]  ( string$str [, string$callback ] )
(PHP 4, PHP 5)
對單一的已序列化的變量進行操作,將其轉換回 PHP 的值。

unserialize注意1

如果在解序列化的時候需要實例化一個未定義類,則可以設置回調函數以供調用(以免得到的是不完整的 object “__PHP_Incomplete_Class”)。可通過 php.ini、ini_set() 或 .htaccess 定義‘unserialize_callback_func’。每次實例化一個未定義類時它都會被調用。若要禁止這個特性,只需置空此設定。還需要注意的是 unserialize_callback_func 指令是從 PHP 4.2.0 開始提供使用的。

unserialize注意2

callback 參數是在 PHP 4.2.0 中添加的

unserialize例子

<?php
// 這裏,我們使用 unserialize() 裝載來自數據庫的 $session_data 數組中的會話數據。
// 此例是描述 serialize() 的那個例子的補充。
$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
// 如果執行出錯或返回錯誤,則初始化為空數組
$session_data = array();
} else {
// 現在我們需要的是 $tmp[0] 中已序列化的數據。
$session_data = unserialize ($tmp[0]);
if (!is_array ($session_data)) {
// 出錯,初始化為空數組
$session_data = array();
}
}
?>
參考資料