当前位置: 首页 > news >正文

司局网站维护廉政风险建设佛山网站建设专家评价

司局网站维护廉政风险建设,佛山网站建设专家评价,企业做电商网站,软件开发是编程吗序列化和反序列化的作用 1.序列化:将对象转化成数组或者字符串的形式 2.反序列化:将数组或字符串的形式转化为对象 为什么要进行序列化 这种数据形式中间会有很多空格,不同人有不同的书写情况,可能还会出现换行的情况 为此为了…

序列化和反序列化的作用

1.序列化:将对象转化成数组或者字符串的形式

2.反序列化:将数组或字符串的形式转化为对象

为什么要进行序列化

这种数据形式中间会有很多空格,不同人有不同的书写情况,可能还会出现换行的情况

为此为了方便数据传输,我们可以进行序列化操作将其变为一个字符串的形式进行传输

案例分析

我们在写PHP代码的时候会写到类这种数据形式

<?php
class demotest{public $name='xiaodi';public $sex='man';public $age=29;public $arr=array('abc',123,'demo');
}
$dd=new demotest();
echo serialize($dd);

类似于这样,原来的数据中就有很多的空格、换行、缩进等额外的数据,这些数据没有用,而且不同人写代码的习惯不同,这些东西都会有差异,而且不可避免在传输过程中可能会产生错误,为此,绕过将数据进行了序列化,就会将传输的数据以统一的格式进行传输,这样就比较规范而且减少出错的概率。

因此为了保证数据传递的效率和正确性,我们可以把数据进行序列化后进行传输

 序列化后各字段的含义

 O:表示的是序列化一个对象,8是对象名称的长度,3 表示有3个属性 s表示第一个属性是字符串类型 4 表示的是第一个属性的字符串长度 name是第一个属性的属性名称,以分号结尾,s表示对象的属性为字符串,长度是6,值为xiaodi,后面的以此类堆......对象的属性相关信息都使用 {}括起来,当然对于数组这样复杂的数据结构我们直接进行输出查看格式内容即可

序列化的内容是什么

序列化只序列化成员变量,不序列化成员函数

案例分析
<?php
class a{public $username='xxxxxx';public $password='xxxxxx';public function daying(){echo 'hello';}public function __destruct(){echo 'over';}
}
$aa= new a();
echo serialize($aa);

我们在序列化的时候一个类中可能有属性也会有方法,但是我们在序列化的时候只会序列化一个对象的属性,不会序列化对象的方法。如图,我们定义的类a中有username和password两个属性,也有daying()和__destruct()两个方法,我们可以看到在序列化后a对象中之序列化了两个属性,为此两个方法并没有被序列化,输出的over是因为触发了destruct()方法打印出来的结果,与序列化无关(ps:主要是说明序列化只要是函数都不会被序列化)

反序列化--将序列化的数据还原成对象

将序列化的数据还原成对象

反序列化后的对象里面的值是反序列化里面的值决定,与原来的预定义的值无关--通过反序列化我们可以修改原来类中属性的值

<?php
class demotest{public $a='hello';public function demo(){echo $this->a;}	
}
$dd=new demotest();
echo(serialize($dd));
$ee='O:8:"demotest":1:{s:1:"a";s:5:"nihao";}';
$ff=urldecode($ee);
$gg= unserialize($ff);
$gg->demo();

本来在demodest中a的值是hello,但是我们通过反序列化将a的值改为nihao后,输出的中值改为了nihao

公有属性和私有属性

在进行反序列化的过程中,对用私有属性,受保护的属性,公有属性来说其反序列化后的结果是不相同。具体结果如图所示

<?php
class demo{public $name="demo";private $sex="man";protected $age=18;}
$d=new demo();
echo serialize($d);
?>

对于一个对象来说它的公有属性序列化后的属性名还是原来的字符串

对于一个对象来说它的私有属性序列化后的属性名是%00+类名+%00+属性名

对于一个对象来说它的受保护的属性序列化后的属性名是 %00+*+%00+属性名

写在最后

如有错误,请及时指出,感谢

http://www.yayakq.cn/news/797319/

相关文章:

  • 大连做企业网站的公司dedecms 网站还原
  • 做受网站iis配置静态网站
  • 做家具的企业网站电子商务网站怎么做推广
  • 如何查询在建项目西安seo排名收费
  • 手机在线做ppt的网站有哪些问题男女主网站上做的popo
  • 上海人才网官方网站安徽六安毛坦厂中学
  • 个人网站开发项目报告线上引流的八种推广方式
  • 长沙网站建设有哪些开发手机app软件公司
  • 常见的网站攻击方式招远网站
  • 网站建设微信公众号小程序制作表情包制作网页
  • 10个网站 云主机需求企业静态网站需要备案吗
  • 老站改版与新建网站北京装饰公司报价
  • 郑州橱柜网站建设wordpress插件酷q
  • 如何用flashfxp通过ftp访问网站服务器下载网站代码旅游酒店网站建设背景分析
  • 教育技术学网站模版网络媒体整合营销
  • 提供微网站建设缙云建设局网站
  • 移动端网站开发技术会员插件wordpress
  • 永清县建设局网站国内做seo公司简介
  • 那些网站是针对物流做的有edi证书可以做网站运营么
  • 专业官方网站建设wordpress 关闭自动保存
  • wordpress 网站遭篡改优化seo网站西安
  • 重庆网站建设开发网站做三方登陆需要注册公司不
  • 企业网站优化方案模板在线图片编辑器图片编辑
  • 南京做网站最好的公司wordpress谷歌翻译插件
  • 济南网站APP公司的网站备案手续
  • 有没有专门做标书的网站网站设计注册
  • 网站建设沈阳凯鸿取消Wordpress外链转内链
  • 网站上的支付链接该怎么做成都软件制作
  • aspnet网站模板wordpress评论头像 修改
  • 从哪个网站找钢做的微商手机端自适应网站布局