Sto leggendo una guida sulla programmazione ad oggetti di PHP e non solo non riesco a capire i metodi magici __sleep e __wakeup ma non riesco neppure a vederli in funzione perché lo script della guida mi da errore. 
Chi mi può dare una mano?
Codice PHP:
class MyClass {
protected $link;
public $host, $username, $password, $db;
public function __construct($host, $username, $password, $db)
{
$this->host = $host;
$this->username = $username;
$this->password = $password;
$this->db = $db;
// connessione al database
$this->connect();
}
private function connect() {
// connessione ad un database
$this->link = mysql_connect($this->host, $this->username, $this->password);
mysql_select_db($this->db, $this->link);
}
public function __sleep() {
// serializzazione di 4 proprietà
return array('host', 'username', 'password', 'db');
}
// ripristino della connessione al database
public function __wakeup() {
$this->connect();
}
}
$obj1 = new MyClass('host', 'username', 'password', 'db');
$obj1_serialized = serialize($obj1);
// successivamente...
$obj2 = unserialize($obj1_serialized);
// stampa "host"
echo $obj2->host;
Grazie amici
P.S.: Premetto che non ho ancora letto la guida su MySQL e volevo leggerla dopo a questa quindi potrebbe essere un questione tendente al mio ignorantesco ignorantismo...