3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Atm { private $balance; public function __construct($balance) { $this->balance = $balance; } public function deposit($amount) { $this->balance = $this->balance + $amount; } public function withdraw($amount) { if ($amount > $this->balance) { throw new InvalidArgumentException('You have insufficient funds to withdraw '.$amount.'.'); } $this->balance = $this->balance - $amount; } public function getBalance() { return $this->balance; } } try { $atm = new Atm(100); //start with 100 bucks echo $atm->getBalance()."\n"; $atm->deposit(50); echo $atm->getBalance()."\n"; $atm->withdraw(80); echo $atm->getBalance()."\n"; $atm->withdraw(100); } catch (Exception $e) { echo $e->getMessage()."\n"; }
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
100 150 70 You have insufficient funds to withdraw 100.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 100 150 70 You have insufficient funds to withdraw 100.

preferences:
152.66 ms | 402 KiB | 186 Q