Usage of php serialize () and unserialize ()

Source: Internet
Author: User
Tags php example string back

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. Copy codeCode: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/--> <? Php
// 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 '<BR> ';
/*
-----------------------------------------------------------------------
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 <br> ";
Print '<BR> ';
?>

The objects in this example can also be converted into arrays and other types, with the same effect!
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 () operates on a single serialized variable and converts it 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, FALSE is returned.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.