- 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;
$charlimong = $mingmong->mate($charles);
var_dump($charlimong);