PHP中的序列化和反序列化离别经由过程函数serialize()和unserialize()即可完成。
string serialize ( mixed value )
serialize() 返回字符串,此字符串包括了示意 value 的字撙节,能够存储于任何地方。(引荐进修:PHP编程从入门到通晓)
这有利于存储或通报 PHP 的值,同时不丧失其范例和构造。
想要将已序列化的字符串变回 PHP 的值,可运用 unserialize()。serialize() 可处置惩罚除了 resource 以外的任何范例。以至能够 serialize() 那些包括了指向其本身援用的数组。你正 serialize() 的数组/对象中的援用也将被存储。
当序列化对象时,PHP 将试图在序列行动之前挪用该对象的成员函数 __sleep()。如许就许可对象在被序列化之前做任何消灭操纵。相似的,当运用 unserialize() 恢复对象时, 将挪用 __wakeup() 成员函数。
注: 在 PHP 3 中,对象属性将被序列化,然则要领则会丧失。PHP 4 打破了此限定,能够同时存储属性和要领。请拜见类与对象中的序列化对象部份猎取更多信息。
serialize() 示例
<?php // $session_data 是包括了当前用户 session 信息的多维数组。 // 我们运用 serialize() 在要求完毕之前将其存储到数据库中。 $conn = odbc_connect ("webdb", "php", "chicken"); $stmt = odbc_prepare ($conn, "UPDATE sessions SET data = ? WHERE id = ?"); $sqldata = array (serialize($session_data), $PHP_AUTH_USER); if (!odbc_execute ($stmt, &$sqldata)) { $stmt = odbc_prepare($conn, "INSERT INTO sessions (id, data) VALUES(?, ?)"); if (!odbc_execute($stmt, &$sqldata)) { /* 失足 */ } } ?>
以上就是php序列化是什么意义的细致内容,更多请关注ki4网别的相干文章!