PHP Conference Japan 2024

igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserializeigbinary_serialize() 儲存的表示法建立 PHP 值

說明

igbinary_unserialize(字串 $str): 混合

igbinary_unserialize() 接受來自 igbinary_serialize() 的單一序列化變數,並將其轉換回 PHP 值。

警告

不可將未受信任的使用者輸入傳遞給 igbinary_unserialize()。由於物件實例化和自動載入,反序列化可能導致程式碼被載入和執行,惡意使用者可能會利用這一點。如果需要將序列化資料傳遞給用戶端,則應使用安全的標準資料交換格式,例如 JSON(透過 json_decode()json_encode())。

如果需要反序列化外部儲存的序列化資料,可以使用 hash_hmac() 進行資料驗證。確保沒有人竄改資料非常重要。

警告

igbinary 序列化格式無法區分相同值的參考群組。所有 PHP 對給定值的引用在反序列化時都被視為同一參考群組的一部分,即使它們在序列化時屬於不同的參考群組。

參數

str

igbinary_serialize() 產生的序列化字串。

如果要反序列化的值是一個 物件,在成功重建物件後,igbinary 會自動嘗試呼叫 __unserialize()__wakeup() 方法(如果存在)。

注意 unserialize_callback_func 指令

當反序列化未定義的類別時,會呼叫 unserialize_callback_func 指令 中指定的回呼函式。如果未指定回呼函式,則物件將被實例化為 __PHP_Incomplete_Class

回傳值

返回轉換後的值,可以是 布林值整數浮點數字串陣列物件null

如果傳入的字串無法反序列化,則返回 false 並發出 E_NOTICEE_WARNING

錯誤/例外

物件可能會在其反序列化處理程式中拋出 Throwable

注意事項

警告

發生錯誤時以及反序列化 nullfalse 值時,都會返回 nullfalse。可以透過將 strigbinary_serialize(null)igbinary_serialize(false) 進行比較,或透過捕捉發出的 E_NOTICE 來捕捉這種特殊情況。

參見

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top