3v4l.org

run code in 300+ PHP versions simultaneously
<?php class TiroNaCara extends Exception { public function __construct($grito){ parent::__construct("Você levou tiro na cara: " . strtoupper($grito)); } } class LojaDeCrack { private $pacotes = array(); private function checarPacotes($oQueFazer){ $pacotes = $this -> pacotes; foreach($pacotes as $pedraDoPacote) $oQueFazer($pedraDoPacote); } public function __construct($pacotes){ if(gettype($pacotes) == "array" && !empty($pacotes)){ checarPacotes(function($pedraDoPacote){ if(!is_numeric($pedraDoPacote)) throw new TiroNaCara("CLIENTE BURRO DO CARALHUDO DE UMAS ARÁBIAS! AFF"); }); $this -> pacotes = $pacotes; }else throw new TiroNaCara("TEM ALGO DE ERRADO COM OS MEUS PACOTES... SEU CRACKUDO FILHO DA PUTA!"); } public function comprarPedra($pedras){ if(is_numeric($pedras)){ $pacotes = $this -> pacotes; foreach($pacotes as $pedraDoPacote){ if($pedraDoPacote <= $pedras){ $resto = $pedras%$pedraDoPacote; if($resto) comprarPedra($resto); } } }else throw new TiroNaCara("TA ME TIRANDO, FILHO DA PUTA?!"); } } try{ $crack = new LojaDeCrack(array(20, 10, 7, '')); }catch(Exception $e){ echo $e -> getMessage(); } ?>

preferences:
35.25 ms | 402 KiB | 5 Q