PHP/Class/ wakeup — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 10:00, 26 мая 2010

Using __sleep() and __wakeup() for Objects

   <source lang="html4strict">

<?php

    class UserClass {
         public $sessionID;
         public $username;
         public function __sleep() {
              session_destroy();
              return array("username");
         }
         public function __wakeup() {
              session_start();
              $this->sessionId = session_id();
         }
    }
    session_start();
    $user = new UserClass;
    $user->sessionId = session_id();
    $seralized_user = serialize($user);
    unset($user);
    $user = unserialize($serialized_user);

?>

 </source>
   
  


__wakeup() is called by unserialize().

   <source lang="html4strict">

<? class apple {

 var $frozen = 0;
 function ___sleep( ) {
   $this->frozen++;
   return array_keys( get_object_vars( $this) );
 }
 function __wakeup( ) {
     print $this->frozen." time(s)";
 }

} $app = new apple ( ); $stored = serialize( $app ); print $stored; $new_app = unserialize( $stored ); ?>

 </source>