<?php
define('SERIALIZED', './presentations/slides/php5intro/serialized');

interface ISerializable {
    function sleep();
    function wakeup();
};

class Person implements ISerializable {
    public $name;

    function sleep() {
        $f = fopen(SERIALIZED,'w');
        fwrite($f,serialize($this->name));
        fclose($f);
    }

    function wakeup() {
        $this->name = @unserialize(
        file_get_contents(SERIALIZED)
        );
    }
}

$p = new Person;
if ($p instanceof ISerializable) {
    $p->wakeup();
}
echo "Previous Spy: {$p->name}\n<br />\n";
$superspies = array('James Bond', 
                    'Sterling Hughes', 
                    'Austin Powers');
$p->name = $superspies[array_rand($superspies)];
echo "New Spy: {$p->name}\n<br />\n";

if ($p instanceof ISerializable) {
    $p->sleep();
}
?>
Output
Previous Spy:
New Spy: Sterling Hughes