查詢

unserialize()函式—用法及示例

「 將儲存在字串中的 PHP 表示形式轉換回 PHP 的值 」


函式名稱:unserialize()

適用版本:PHP 4, PHP 5, PHP 7

函式描述:unserialize() 函式將儲存在字串中的 PHP 表示形式轉換回 PHP 的值。

語法:mixed unserialize ( string $str [, array $options ] )

引數:

  • $str:必需,要反序列化的字串。
  • $options:可選,一個關聯陣列,用於指定反序列化過程的選項。目前支援的選項有:
    • 'allowed_classes':指定允許反序列化的類的白名單。預設情況下,所有類都是允許的。
    • 'object_to_array':將物件轉換為陣列。預設情況下,物件將被還原為它們的原始類。

返回值:反序列化後的值,如果反序列化失敗則返回 false。

示例:

// 反序列化字串
$data = 'a:2:{i:0;s:5:"apple";i:1;s:6:"orange";}';
$result = unserialize($data);
var_dump($result);
// 輸出:array(2) { [0]=> string(5) "apple" [1]=> string(6) "orange" }

// 反序列化物件
class Fruit {
    public $name;
    public function __construct($name) {
        $this->name = $name;
    }
}

$data = 'O:5:"Fruit":1:{s:4:"name";s:5:"apple";}';
$result = unserialize($data);
var_dump($result);
// 輸出:object(Fruit)#1 (1) { ["name"]=> string(5) "apple" }

注意事項:

  • unserialize() 函式在反序列化時可能會觸發 PHP 的自動載入機制,如果類未定義或無法自動載入,則會導致反序列化失敗。
  • 為了安全起見,應該僅反序列化可信任的資料,避免反序列化來自不可信任來源的資料,以防止程式碼執行漏洞。
補充糾錯
上一個函式: unset()函式
熱門PHP函式
分享連結