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...