3v4l.org

run code in 300+ PHP versions simultaneously
<?php abstract class Abunyasha { public function ban (): string { $this->poshatatMakabu(); $this->goToMailRu(); // И ещё много всякого кода, который на 100% одинаков для всех наследников. return "Ban po prichine: " . $this->getReason() . "!"; } public function poshatatMakabu () : void { var_dump("2ch ypal"); } public function goToMailRu () : void { var_dump("prepare your anus"); } abstract public function getReason(): string; } class AnonOne extends Abunyasha { public function getReason(): string { return "ti pidor"; } } class AnonTwo extends Abunyasha { public function getReason(): string { return "ti animeshnik"; } } class AnonThree extends Abunyasha { public function getReason(): string { return "ti postil cp"; } } $aOne = new AnonOne(); var_dump($aOne->ban()); $aTwo = new AnonTwo(); var_dump($aTwo->ban()); $aThree = new AnonThree(); var_dump($aThree->ban());

preferences:
24.62 ms | 404 KiB | 5 Q