3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Server { private $hostname; private $cpu; private $ram; public function __construct($hostname, $cpu, $ram) { $this->hostname = $hostname; $this->cpu = $cpu; $this->ram = $ram; } public function getHostname() { return $this->hostname; } public function setHostname($hostname) { return $this->hostname = ($hostname == null ? $this->_exception("Hostname must not be null.") : $hostname); } public function getCpu() { return $this->cpu; } public function setCpu($cpu) { return $this->cpu = ($cpu == null ? $this->_exception("CPU must not be null.") : $cpu); } public function getRam() { return $this->ram; } public function setRam($ram) { return $this->ram = ($ram == null ? $this->_exception("RAM must not be null.") : $ram); } public function getRamInGb() { return $this->ram / 1024; } public function addRam($ram) { return $this->ram = ($ram === null ? $this->_exception("RAM must not be null.") : $this->ram + $ram); } public function subRam($ram) { return $this->ram = ($this->ram - $ram < 0 ? $this->_exception("RAM must not result in a below-zero value.") : $this->ram - $ram); } protected function _exception($text = null) { throw new InvalidArgumentException($text); } } $server = new Server("test.com", "Intel Xeon E5-2680 v2 2.8Ghz", 1024); echo $server->getHostname(); // "test.com" echo $server->setHostname("test.com"); // "test.com" echo $server->getCpu(); // "Intel Xeon E5-2680 v2 2.8Ghz" echo $server->setCpu("Intel Xeon E5-2680 v3 2.8Ghz"); // "Intel Xeon E5-2680 v3 2.8Ghz" echo $server->getRam(); // 1024 echo $server->getRamInGb(); // 1 echo $server->addRam(1024); // 2048 echo $server->getRamInGb(); // 2 echo $server->subRam(1024); // 1024 echo $server->getRamInGb(); // 1 echo $server->subRam(1024); // 0 echo $server->getRamInGb(); // 0 echo $server->subRam(1024); // InvalidArgumentException echo $server->getRamInGb(); // 0 echo $server->setRam(1024); // 1024 echo $server->getRamInGb(); // 1 echo $server->setRam(-1024); // InvalidArgumentException echo $server->getRamInGb(); // 1
based on 3eufT
Output for 7.0.0 - 7.2.0
test.comtest.comIntel Xeon E5-2680 v2 2.8GhzIntel Xeon E5-2680 v3 2.8Ghz10241204821024100 Fatal error: Uncaught InvalidArgumentException: RAM must not result in a below-zero value. in /in/sa9XT:62 Stack trace: #0 /in/sa9XT(57): Server->_exception('RAM must not re...') #1 /in/sa9XT(79): Server->subRam(1024) #2 {main} thrown in /in/sa9XT on line 62
Process exited with code 255.
Output for 5.3.20 - 5.6.28
test.comtest.comIntel Xeon E5-2680 v2 2.8GhzIntel Xeon E5-2680 v3 2.8Ghz10241204821024100 Fatal error: Uncaught exception 'InvalidArgumentException' with message 'RAM must not result in a below-zero value.' in /in/sa9XT:62 Stack trace: #0 /in/sa9XT(57): Server->_exception('RAM must not re...') #1 /in/sa9XT(79): Server->subRam(1024) #2 {main} thrown in /in/sa9XT on line 62
Process exited with code 255.