PHP 如何使用serialize() 和 unserialize() 函数

PHP 如何使用serialize() 和 unserialize() 函数

我们无法在 PHP 中移动、传输或存储复杂的数据。在需要执行一组复杂数据的情况下,我们往往会使用 serialize()unserialize() 函数。

serialize 函数将复杂的数据结构修改成 PHP 能够轻松传输的兼容形式。这些重建的结构可以使用 unserialize() 函数再次解构。

serialize() 函数

这个 PHP 函数将复杂的数据集转换为一个字节流表示,可以轻松存储在 PHP 中。Serialize() 函数以对象的方式保存元素,将所有可用的变量转换为对象。

但对象内部使用的方法将不会保存在对象中。相反,只会有类的名称存在。一旦对象被声明到结构中,我们必须 unserialize() 创建的对象。

示例

如果我们创建了一个名为 employee 的类,并将其序列化,PHP 将把序列化的类转换为一个字符串,最初将指向 employees 类。它将保存其中包含的所有变量。

但是,要在其他文件中反序列化创建的 employee 类,必须在第一个文件中有 employees 类的定义。这可以使用 PHP 中的 spl_autoload_register() 函数来实现。

语法

下面是 serialize() 函数的语法:

Serialize( $values_ in_form_of_array )

程序

让我们使用serialize()函数编写一个程序,

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content=" width = device-width, initial-scale=1.0 " >
<title> PHP str _ contains ( ) function </title>
</head>
<body>
<?php
myv = array(
    'hello world',    99, 
array(2, 'four'),    'pink'
);string = serialize(myv); 
echostring; 
myv2 = array( "this is an array employees", 24500000, array("bmw", " Volvo ","audi"), 'software developer');stringnew = serialize(myv2); 
echostringnew;
?>
 ?>
</body>
</html>

输出

以上代码产生以下输出:

Arraya:4:{ I :0;s:11:"hello world"; I  :1; I :99; I :2;a:2:{ I :0; I :2; I :1;s:4:"four";} I :3;s:4:"pink";}
A:4:{ I :0;s:26:"this is an array employees"; I :1; I :24500000; I  :2;a:3:{ I :0;s:3:"bmw"; I :1;s:5:" Volvo "; I :2;s:4:"audi";} I :3;s:18:"software developer";}

在这个程序中,我们创建了两个对象myv和myv2,它们具有不同的元素,并使用serialize函数将对象转换为字符串。

Unserialize() 函数

这个函数的主要目标是将预先被序列化的数组反序列化回其先前的复杂结构。

语法

下面是unserialize()函数的语法:

Unserialize( $serialized_array )

程序

让我们使用unserialize()函数编写代码,

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content=" width = device-width, initial-scale=1.0 " >
<title> PHP str _ contains ( ) function </title>
</head>
<body>
<?php
myv = array(
    'hello world',    99, 
array(2, 'four'),    'pink'
);string = serialize(myv); 
echostring;
newvar = unserialize(string); 
print_r(newvar);myv2 = array( "this is an array employees", 24500000, array("bmw", "volvo","audi"), 'software developer');
 stringnew = serialize(myv2); 
echo stringnew;newvar2 = unserialize(stringnew); 
print_r(newvar2); 
?>
</body>
</html>

输出

以上代码产生以下输出,

Array a : 4:{ I :0;s:11:"hello world"; I  :1; I :99; I :2;a:2:{ I :0; I :2; I :1;s:4:"four";} I :3;s:4:"pink";}
Array
(
    [0] => hello world
    [1] => 99
    [2] => Array
        (
            [0] => 2
            [1] => four
        )

    [3] => pink
)
A:4:{ I :0;s:26:"this is an array employees"; I :1; I :24500000; I  :2;a:3:{ I :0;s:3:"bmw"; I :1;s:5:" Volvo "; I :2;s:4:"audi";} I :3;s:18:"software developer";}
Array
(
    [0] => this is an array employees
    [1] => 24500000
    [2] => Array
        (
            [0] =>bmw
            [1] => Volvo
[2] =>audi
        )
    [3] => software developer
)

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程