1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
<?php
interface |>CLASS:Punchable<| {
public function |>METHOD:punch<|();
public function |>METHOD:isStanding<|();
}
class |>CLASS:Boxer<| implements Punchable {
private $|>FIELD:hitpoints<|;
public function |>METHOD:__construct<|() {
$this->|>FIELD:hitpoints<| = 10;
}
public function |>METHOD:punch<|() {
$this->|>FIELD:hitpoints<|--;
}
public function |>METHOD:isStanding<|() {
return $this->|>FIELD:hitpoints<|>0;
}
}
function fight(Punchable $p) {
while($p->|>CUSTOM1:isStanding<|()) {
$p->|>CUSTOM1:punch<|();
echo "Hit!\n";
}
echo "Victory!";
}
fight(new Boxer());
?>
|