<?php
$pets = array( new Dog
("ぽち"), new Cat
("たま", 1) );
foreach( $pets as $pet ) {
$pet->play();
}
class Animal {
var $name;
function __construct($name) {
$this->name = $name;
}
function play() {
}
}
class Dog extends Animal {
function __construct($name) {
parent::__construct($name);
}
function play() {
echo "わんわん!" . $this->name . "だよ\n";
}
}
class Cat extends Animal {
var $sleep;
function __construct($name, $sleep) {
parent::__construct($name);
}
function play() {
echo "にゃん!" . $this->name . "だよ\n";
echo "...でも寝る\n";
}
}
}
?>
PD9waHAKCiRwZXRzID0gYXJyYXkoIG5ldyBEb2coIuOBveOBoSIpLCBuZXcgQ2F0KCLjgZ/jgb4iLCAxKSApOwoKZm9yZWFjaCggJHBldHMgYXMgJHBldCApIHsKICAgICRwZXQtPnBsYXkoKTsKfQoKY2xhc3MgQW5pbWFsIHsKICAgIHZhciAkbmFtZTsKCiAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbmFtZSkgewogICAgICAgICR0aGlzLT5uYW1lID0gJG5hbWU7CiAgICB9CgogICAgZnVuY3Rpb24gcGxheSgpIHsKICAgIH0KfQoKY2xhc3MgRG9nIGV4dGVuZHMgQW5pbWFsIHsKICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRuYW1lKSB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbmFtZSk7CiAgICB9CgogICAgZnVuY3Rpb24gcGxheSgpIHsKICAgICAgICBlY2hvICLjgo/jgpPjgo/jgpPvvIEiIC4gJHRoaXMtPm5hbWUgLiAi44Gg44KIXG4iOwogICAgfQp9CgpjbGFzcyBDYXQgZXh0ZW5kcyBBbmltYWwgewogICAgdmFyICRzbGVlcDsKICAgIAogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsICRzbGVlcCkgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5hbWUpOwogICAgICAgICR0aGlzLT5zbGVlcCA9ICRzbGVlcDsKICAgIH0KCiAgICBmdW5jdGlvbiBwbGF5KCkgewogICAgICAgIGVjaG8gIuOBq+OCg+OCk++8gSIgLiAkdGhpcy0+bmFtZSAuICLjgaDjgohcbiI7CiAgICAgICAgaWYoJHRoaXMtPnNsZWVwID09IDEpIHsKICAgICAgICAgICAgZWNobyAiLi4u44Gn44KC5a+d44KLXG4iOwogICAgICAgIH0KICAgIH0KfQo/Pgo=