- substr: documentation ( source)
- var_dump: documentation ( source)
- rand: documentation ( source)
<?php
class Mammal {
function mate(Mammal $with) {
$thisClass = get_class($this);
$withClass = get_class($with);
$class = substr($thisClass, 0, -rand(1, strlen($thisClass) - 1)) . substr($withClass, rand(1, strlen($withClass) - 1));
eval("class $class extends Mammal {}");
return new $class;
}
}
class Panda extends Mammal {}
class Dolphin extends Mammal {}
class Squirrel extends Mammal {}
class Kangaroo extends Mammal {}
$mingmong = new Panda;
$charles = new Dolphin;
$suqidgy = new Squirrel;
$wanger = new Kangeroo;
$charlimong = $mingmong->mate($charles);
$wangy = $wanger->mate($squidgy);
$wangimong = $wanger->mate($charlimong);
var_dump($wangimong);