interface printable {
public function printme();
}
interface Inumber {
public function reset();
}
class Integer implements printable, Inumber {
private $value;
function __construct($value) {
$this->value = $value;
}
public function printme() {
echo (int)$this->value;
}
public function reset() {
$this->value = NULL;
}
}
function resetNumber(Inumber $obj) {
$obj->reset();
}
function printNumber(printable $obj) {
$obj->printme();
}
$inst = new Integer(10);
printNumber($inst);
resetNumber($inst);
?>