易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP序列化用到的构造:__sleep() __wakeup()

在PHP进行序列化时,serialize() 检查类中是否有 __sleep() ,如果有,则该函数将在任何序列化之前运行。该函数必须返回一个需要进行序列化保存的成员属性数组,并且只序列化该函数返回的这些成员属性. 该函数有两个作用: 第一. 在序列化之前,关闭对象可能具有的任何数据库连接等. 第二. 指定对象中需要被序列化的成员属性,如果某个属性比较大而不需要储存下来,可以不把它写进__sleep要返回的数组中,这样该属性就不会被序列化
相反地,unserialize() 从字节流中创建了一个对象之后,马上检查是否具有__wakeup 的函数的存在。如果存在,__wakeup 立刻被调用。使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。
<?php
   class User
   {
       public $name;
       public $id;
       function __construct()
       {
           $this->id = uniqid();          //give user a unique ID 赋予一个不同的ID
       }
       function __sleep()
       {   
           return(array("name"));        //do not serialize this->id 不串行化id
       }
       function __wakeup()
       {
           $this->id = uniqid();         //give user a unique ID
       }
   }
   $u = new User;
   $u->name = "HAHA";
   $s = serialize($u);                   //serialize it 串行化 注意不串行化id属性,id的值被抛弃
&nbs


相关文档:

php 使用memcached 安装配置

 
1、安装libeven
memcached的使用需要libeven的支持,我们得先装上libeven。
官方网站:http://www.monkey.org/~provos/libevent/
libevent安装方式比较简单:
./configure && make
make install
检查是否 已经安装
 ls -l /usr/local/lib/ | grep even
2、安装memcached
官方网站:http://ww ......

PHP程序员的十个建议性技巧

 
PHP程序员的十个建议性技巧
2009-07-11 09:46
一个同样的功能,各种程序语言大多能实现.就算一种语言,也有很多种实现方法.各种方法各有各的好坏.
        对于PHP
比较常见的几个程序使用问题.本文总结一些PHP程序员的十个建设与技巧,供大家参考.
  1.使用 ip2long() 和 ......

PHP中Session变量不能传送到下一页的解决方法

在PHP中使用过SESSION的朋友可能会碰到这么一个问题,SESSION变量不能跨页传递。这令我苦恼了好些日子,最终通过查资料思考并解决了这个问题。我认为,出现这个问题的原因有以下几点:
1、客户端禁用了cookie
2、浏览器出现问题,暂时无法存取cookie
3、php.ini中的session.use_trans_sid = 0或者编译时没有打开--enable ......

PHP

<?php
// open database connection
@ $db = new mysqli($host, $user, $password, $database_name);
if (mysql_connect_error())
{
echo '';
exit;
}
// query
$result = $db->query($sql);
$num_results = $db->num_rows;
// data
$row = $result->fetch_assoc(); // row is array, $row['id' ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号