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); ?>
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(); ?>
Run this example, output:
My name is: Zhang San
My age is: 20