php中客户端向服务端传输对象数据

在实际应用中,我们通过 http, https, tcp, udp, unix socket 等来传输数据,基本都是传输字符串,二进制数据,那么可不可以传递对象呢,答案是肯定的。

主要函数:序列化和反序列化
1、serialize ( mixed $value ) : string
产生一个可存储的值的表示,可处理除了 resource 之外的任何类型,有利于存储或传递,于是对象和数组就可以作为字符串操作了,对象序列化后的字符串只保留了对象的属性和名字。

2、unserialize ( string $str ) : mixed
从已存储的表示中创建 PHP 的值,在反序列化之前需要先加载对象的类,否则是__PHP_Incomplete_Class,且无法调用对象的属性和方法。unserialize 方法会参照加载的名称相同的类来解析出对象,如果两边加载的是同名的但内容不同的类,那解析后的对象方法为自己加载的类的方法,属性为两边属性的合并。

示例:服务端A和客户端B通过socket-tcp通讯

1、当传输的对象的类在A和B上都已被加载
服务端
在这里插入图片描述
客户端
在这里插入图片描述
客户端的输出
在这里插入图片描述
并且可以操作这个对象

2、反序列化一个未加载的对象
在这里插入图片描述
操作该类会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值