Section 13th-serializable object serialization: you can include objects and convert them into continuous bytes data. you can save serialized variables in a file or transmit them over the network. then, the data is deserialized and restored to the original data. PHP can successfully store the attributes and methods of the objects defined before the objects of the deserialization class. sometimes you may need an object in the deserialization section 13th-object serialization
Serializing variables, including objects, can be converted into continuous bytes data. you can save serialized variables in a file or transmit them over the network. then, the data is deserialized and restored to the original data. PHP can successfully store the attributes and methods of the objects defined before the objects of the deserialization class. sometimes you may need an object to be executed immediately after deserialization. for this purpose, PHP will automatically find the _ sleep and _ wakeup methods.
When an object is serialized, PHP calls the _ sleep method (if any ). after an object is deserialized, PHP calls the _ wakeup method. both methods do not accept parameters. the _ sleep method must return an array containing the attributes to be serialized. PHP will discard other attribute values. if the _ sleep method is not available, PHP will save all attributes.
Example 6.16 shows how to serialize an object using the _ sleep and _ wakeup methods. the Id attribute is a temporary attribute not intended to be retained in the object. the _ sleep method ensures that the id attribute is not included in the serialized object. when a User object is deserialized, the __wakeup method creates a new value for the id attribute. this example is designed to be self-sustaining. in actual development, you may find that objects containing resources (such as or data streams) need these methods.
Listing 6.16 Object serialization
Class User
{
Public $ name;
Public $ id;
Function _ construct ()
{
// Assign a different ID to the give user a unique ID
$ This-> id = uniqid ();
}
Function _ sleep ()
{
// Do not serialize this-> id is not serialized id
Return (array ("name "));
}
Function _ wakeup ()
{
// Give user a unique ID
$ This-> id = uniqid ();
}
}
// Create object creates an object
$ U = new User;
$ U-> name = "Leon ";
// Serialize it serializization note that the id attribute is not serialized, and the id value is discarded
$ S = serialize ($ u );
// Unserialize it deserialization id is re-assigned
$ U2 = unserialize ($ s );
// $ U and $ u2 have different IDs $ u and $ u2 have different IDs
Print_r ($ u );
Print_r ($ u2 );
?>