Storage and transmission of PHP objects (serialize objects)

巴扎黑
Release: 2016-11-12 09:20:52
Original
1306 people have browsed it


PHP object storage and transmission (serialize object)

Object storage and transmission

In actual project applications, some tasks cannot be completed in one or two pages, because the variables cannot be completed until the script is executed. Release, we run into trouble when the objects generated by this page are used in other pages.

If we need to pass the object and its methods to the page where we want to use the object, a relatively simple and feasible way is to serialize the object and store it or directly transfer it to the required page. Another way is to register the object as a session variable. .

Serialized objects

Object serialization is to convert objects into a byte stream that can be stored. When we need to transmit an object over the network or write the object to a file or database, we need to serialize the object.

The complete process of serialization includes two steps: one is serialization, which is to convert the object into a binary string. The serialize() function is used to serialize an object; the other is deserialization, which is to convert the object serially. The binary string is then converted into an object, and the unserialize() function is used to deserialize a serialized object. In this way, after the entire process, the type structure and data within the object are complete.

Syntax:

string serialize( mixed value )

mixed unserialize( string str [, string callback] )

Example:

<?php
class Person {
    private $name;
    private $age;
    function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
    function say() {
echo "我的名字叫:".$this->name."<br />";
echo " 我的年龄是:".$this->age;
    }
}
$p1 = new Person("张三", 20);
$p1_string = serialize($p1);
//将对象序列化后写入文件
$fh = fopen("p1.text", "w");
fwrite($fh, $p1_string);
fclose($fh);
?>
Copy after login

Open the p1.text file, and the content written in it is as follows:

O:6 :"Person":2:{s:12:" Person name";s:4:"Zhang San";s:11:" Person age";i:20;}

But usually the above sequence is not directly parsed Characters generated.

Deserialization:

<?php
class Person {
    private $name;
    private $age;
    function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
    function say() {
echo "我的名字叫:".$this->name."<br />";
echo " 我的年龄是:".$this->age;
    }
}
$p2 = unserialize(file_get_contents("p1.text"));
$p2 -> say();
?>
Copy after login

Run this example, output:

My name is: Zhang San

My age is: 20


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!