This article provides a detailed analysis of the application of serialize () and unserialize () in php. For more information, see
This article provides a detailed analysis of the application of serialize () and unserialize () in php. For more information, see
Serialize () and unserialize () are described in the php manual as follows:
Serialize-Generates a storable representation of a value
Serialize-generate a representation of a stored value
Unserialize-Creates a PHP value from a stored representation
Unserialize-create a PHP value from a stored Representation
Obviously, the explanation of "a stored representation" is translated into a stored value, which is still very confusing.
If the language cannot be clearly stated, we can use a specific PHP example to learn the usage of these two functions.
The Code is as follows:
Code highlighting produced by Actipro CodeHighlighter (freeware)> // Declare a class
Class dog {
Var $ name;
Var $ age;
Var $ owner;
Function dog ($ in_name = "unnamed", $ in_age = "0", $ in_owner = "unknown "){
$ This-> name = $ in_name;
$ This-> age = $ in_age;
$ This-> owner = $ in_owner;
}
Function getage (){
Return ($ this-> age * 365 );
}
Function getowner (){
Return ($ this-> owner );
}
Function getname (){
Return ($ this-> name );
}
}
// Instantiate this class
$ Ourfirstdog = new dog ("Rover", 12, "Lisa and Graham ");
// Use the serialize function to convert this instance into a serialized string
$ Dogdisc = serialize ($ ourfirstdog );
Print $ dogdisc; // $ ourfirstdog has been serialized as a string O: 3: "dog": 3: {s: 4: "name"; s: 5: "Rover "; s: 3: "age"; I: 12; s: 5: "owner"; s: 15: "Lisa and Graham ";}
Print'
';
/*
-----------------------------------------------------------------------
Here you can store the string $ dogdisc anywhere, such as session, cookie, database, and PHP files.
-----------------------------------------------------------------------
*/
// Cancel this class here
Unset ($ ourfirstdog );
/* Restore operation */
/*
-----------------------------------------------------------------------
Here, you can read the string $ dogdisc from your storage location, such as session, cookie, database, and PHP files.
-----------------------------------------------------------------------
*/
// Here we use unserialize () to restore serialized objects.
$ Pet = unserialize ($ dogdisc); // $ pet is the previous $ ourfirstdog object.
// Get the age and name attributes
$ Old = $ pet-> getage ();
$ Name = $ pet-> getname ();
// This class can be used without instantiation at this time, and both attributes and values remain in the state before serialization.
Print "Our first dog is called $ name and is $ old days old
";
Print'
';
?>
The objects in this example can also be converted into arrays and other types, website space, and the effects are the same!
In fact, serialize () is to serialize the values of PHP variables such as objects and arrays into strings and store them. serialized strings can be stored elsewhere, such as databases, sessions, and cookies. serialized operations do not lose the type and structure of these values. In this way, the data of these variables can be transmitted between PHP pages or even different PHP programs.
Unserialize () is to convert the serialized string back to the PHP value.
Here I will reference the instructions in the PHP manual. After reading the above example, it is easy to understand the meaning of the following statements.
To change serialized strings back to PHP values, use unserialize (). Serialize () can process any type other than resource. Even serialize () contains arrays that point to its own reference. References in arrays/objects of serialize () will also be stored.
When an object is serialized, PHP tries to call the member function _ sleep () of the object before the sequential action (). This allows objects to be cleared before being serialized. Similarly, when unserialize () is used to restore an object, the _ wakeup () member function is called.
Unserialize () is used to operate a single serialized variable. The website space is converted back to the PHP value. The returned value is the converted value, which can be integer, float, string, array, or object. If the passed string cannot be deserialized, the Hong Kong server returns FALSE.