php中类的持久化如何实现

php中类的持久化如何实现

一、总结

一句话总结:PHP持久化通过serialize()  和   unserialize() 这两个函数来实现的。

 

1、持久化之后的对象保存到哪里?

将复杂的数组之类的数组转换成字符串形式持久保存到数据库或文件或session中了.

 

2、为什么Resource类型不支持序列化?

感觉应该是因为resource类型是调用外部资源的原因

这完全是PHP中的Resource类型中指针的缘故

 

 

 

二、php中类的持久化如何实现

持久化定义:

通过将应用程序对象转化成一系列字节流(称  对象序列化),以适应网络传输和保存。

被序列化的对象还可以被重新装配,能够换成原来的形式。

这即意味着,改机制能自动补偿操作系统减的差异,比如在windows上的数据对象被序列化之后,可以通过网络传输到一台Linux系统,准确无误地实现重新装配。

“持久化”可以使应用程序对象不受应用程序运行时间的限制——可以讲一个对象序列化,然后保存到磁盘上,在再次需要使用時进行装配,从而圆满实现一种“持久”效果。

 

 

PHP持久化通过serialize()  和   unserialize() 这两个函数来实现的。 

在PHP中,几乎任何类型(Integer 、Boolean、Float、Array、Object)的变量都可以被序列化。

仅仅只有Resource类型不支持序列化,这完全是PHP中的Resource类型中指针的缘故。

而String类型,由于它本身就是字节流,所有根本没有序列化的必要。

 

其实象ASP这样的开发环境也隐藏这种特性,只不过它是通过, 在session 或 Application 对象中保存应用程序对象,这也是一种持久化的表现,不过ASP并没有提供这一特性的显式接口。

 

三、如何用php实现持久化处理

你是指数据持久化还是运行持久化?如果是数据持久化,可以使用serialize()和unserialize()来处理.

试一试:

1
2
3
4
5
6
7
8
<?php
     $str = '' ;
     $array = array ( 'php' , '数据' , '持久化' );
     $str =serialize( $array ); //可以将数组$array序列化成字符串并赋值给字符串变量$str
     echo  $str ; //将输出一串序列化编码后的字符串
     $array =unserialize( $str ); //可以将之前序列化后的字符串反解析成数组给$array变量.
     print_r( $array );
?>

 使用上面的方法可以将复杂的数组之类的数组转换成字符串形式持久保存到数据库或文件或session中了.

 

 

 

 

 

 

 

 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值