PHP:数组变量的序列化和反序列化

序列化和反序列化是PHP操作数据库、读写文件时常见的操作。

序列化,就是将PHP的变量转化为可保存的、可传输的字符串的过程;

反序列化,则是将(序列化的)字符串转化回变量。

比如,我们需要将某学生的个人信息写入数据库,可以这样:

$arr = array(
    "name" => "山可唠",
    "age" => "24",
    "grade" => "六",
    "class" => "一"
);
$str = serialize($arr);
echo $str;

输出:a:4:{s:4:"name";s:9:"山可唠";s:3:"age";s:2:"24";s:5:"grade";s:3:"六";s:5:"class";s:3:"一";}

序列化后,我们得到一长串文本。

将其存入数据库(或文件),需要时读出,再反序列化为数组,即可取值:

$str = 'a:4:{s:4:"name";s:9:"山可唠";s:3:"age";s:2:"24";s:5:"grade";s:3:"六";s:5:"class";s:3:"一";}';
$arr = unserialize($str);
print_r($arr) ;


输出:Array ( [name] => 山可唠 [age] => 24 [grade] => 六 [class] => 一 )

这种方式很适合用于处理信息表单。

假设某表单有数十个input,且可扩展,那么在数据库中很难处理——你不可能预设足够多的数据库栏目。因此,最简单的方式便是序列化后直接存到数据库中,需要时再读出,呈现在前端。

原创文章,作者:STEVE,如若转载,请注明出处:https://shinecloud.com.cn

(0)
STEVESTEVE
上一篇 2022年 10月 24日 上午12:02
下一篇 2022年 10月 26日 上午1:34

相关推荐

  • PHP:设计模式之单例模式及数据库案例

    设计模式的定义 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性... 简而言之,就是前人…

    2022年 10月 23日
    275
  • PHP连接数据库:使用类和函数两种方式

    PHP连接数据库是非常常用的功能,在初学时,一般使用函数来连接。 函数的方式非常简单,如果不需要报错信息的话,只有2行代码,加上报错信息,也只有6行而已。 我们尝试定义一个类来连接数据库,如下所示: 好家伙…

    2022年 10月 20日
    279
  • PHP常量:Const和Define有什么区别?

    在初学PHP时,我对这两个函数有点迷糊,虽然知道如何使用,但不知道设计这两个有什么意义。 Const const是一种语言结构,最早只能用在类(class)内,PHP5.3之后可以用在类外,实现了通用。 Define define是一个函…

    2022年 10月 19日
    360
  • 基于JQuery的AJAX异步文件上传方法

    对于许多初学者而言,上传表单很容易,但上传文件就麻烦了。 这里给出一个简单的方法,供参考。 HTML部分 谨记:action可以留空,enctype要设为“multipart/form-data” Javascript部分 PHP部分 如果不出意外,你的前…

    2022年 11月 8日
    472
  • PHP类的自动加载函数:spl_autload_register()

    一个PHP项目里通常有许多个类(class),如果在每个PHP页面的开头进行引入,非常麻烦,尤其是不同的PHP页面需要不同的类。 因此,PHP7之前,有__autoload()函数用于自动引用类,PHP7之后则改为了spl_autload_regist…

    2022年 10月 22日
    317

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注