PHP/Class/ sleep

Материал из Web эксперт
Версия от 10:00, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Controlling serialization using __sleep() and __wakeUp()

   <source lang="html4strict">

<?php class LogFile {

   protected $filename;
   protected $handle;
 
   public function __construct($filename) {
       $this->filename = $filename;
       $this->open();
   }
   private function open() {
       $this->handle = fopen($this->filename, "a");
   }
 
   public function __destruct($filename) {
       fclose($this->handle);
   }
 
   public function __sleep() {
       return array("filename");
   }
 
   public function __wakeUp() {
       $this->open();
   }

} ?>

 </source>
   
  


__sleep() method is called by serialize() before it packs up the object.

   <source lang="html4strict">

<? class apple {

 var $flavor="sweet";
 var $frozen = 0;
 function ___sleep( ) {
   $this->frozen++;
   return array_keys( get_object_vars( $this) );
 }

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

 </source>