分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

PHP常见概念(六)之序列化

发布时间:2023-09-06 02:08责任编辑:傅花花关键词:PHP

PHP序列化使用的是 serialize()函数来进行序列化,serialize()函数定义如下:

string serialize ( mixed $value )

除了资源类型以外的都可以被序列化。

Integer类型

Integer类型序列化: i:值;

<?php ????????$test = 1; ???????echo serialize($test); // i:1;
Float类型

float类型序列化: d:值;

<?php ????$test = 1.01; ???????echo serialize($test); // d:1.01;
String类型

String类型序列化: s:长度:值;

<?php ????????$test = ‘1.01‘; ???????echo serialize($test); // s:4:‘1.01‘;
Boolean类型

Boolean类型序列化: b:(0或者1);

<?php ????????$test = true; ???????echo serialize($test); // b:1;
Null类型

Null类型序列化: N;

<?php ????????$test = Null; ???????echo serialize($test); // N;
array类型

array类型序列化: a:个数:{key的值;value的值;key的值;value的值; ......}

<?php ???$test = array( ??????1, ??????2 ???); ??echo serialize($test); // a:2:{i:0;i:1;i:1;i:2;}
Object类型

object类型序列化: O:类名长度:类名:变量个数{key;value等等}这里的key;value只包括对象所有变量值。

<?php ???class test{ ?????private $test = "111"; ?????protected $test2 = "222"; ?????public $test3 = "333"; ?????const TEST = "111"; ?????public static $test4 = "444"; ?????????public function test5(){ ???????echo 111; ?????} ?????????protected function test6(){ ???????echo 222; ?????} ?????????private function test7(){ ???????echo 333; ?????} ?????????public static function test8(){ ???????echo 444; ?????} ???} ???$test = new test; ???echo serialize($test); //O:4:"test":3{s:10:" test test";s:3:"111";s:8:" * test2";s:3:"222";s:5:"test3";s:3:"333"}
  • private类型的变量名以 空格 类名 空格 变量名 存储
  • protected类型的变量名以 空格 * 空格 变量名 存储p
  • 将变量存储到session中,session会自动进行序列化处理保存到文件中,读取的时候又会自动反序列化

    session.serialize_handler = php //表明session的默认序列话引擎使用的是php序列话引擎

     ?<?php ?class test{ ???private $test = "111"; ???protected $test2 = "222"; ???public $test3 = "333"; ???const TEST = "111"; ???public static $test4 = "444"; ???public function test5(){ ?????echo 111; ???} ???protected function test6(){ ?????echo 222; ???} ???private function test7(){ ?????echo 333; ???} ???public static function test8(){ ?????echo 444; ???} ?} ?$_SESSION[‘test‘] = new test(); ?echo $_SESSION[‘test‘]; // 111;
  1. __sleep(): 在序列化对象的时候调用

  2. __wake(): 在反序列化对象的时候调用

PHP常见概念(六)之序列化

原文地址:https://www.cnblogs.com/qiye5757/p/9435722.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved