3v4l.org

run code in 200+ PHP versions simultaneously
<?php class Model { protected $comments; public function __construct() { $this->comments = new class { public function count() { $responses = [ 1, 2, 3, "Error: could not connect to database", 5 ]; $rand = rand(0, 4); if (is_string($responses[$rand])) { throw new Exception($responses[$rand]); } return $responses[$rand]; } }; } } class Post extends Model { public function commentCount() { static $cache; return $cache?: $cache = $this->comments->count(); } } $post = new Post(); var_dump($post->commentCount()); var_dump($post->commentCount()); var_dump($post->commentCount()); var_dump($post->commentCount()); var_dump($post->commentCount());
based on R8PE7
Output for 7.2.6, 7.2.8, 7.2.11, 7.2.24, 7.3.2 - 7.3.4, 7.3.7, 7.3.12, 7.4.0, 7.4.3 - 7.4.5
int(2) int(2) int(2) int(2) int(2)
Output for 7.2.7, 7.2.17, 7.2.22, 7.4.2
int(5) int(5) int(5) int(5) int(5)
Output for 7.2.1 - 7.2.2, 7.2.12, 7.2.15 - 7.2.16, 7.2.18 - 7.2.21, 7.3.5, 7.3.8, 7.3.17, 7.4.1
Fatal error: Uncaught Exception: Error: could not connect to database in /in/Yfmub:23 Stack trace: #0 /in/Yfmub(38): class@anonymous->count() #1 /in/Yfmub(44): Post->commentCount() #2 {main} thrown in /in/Yfmub on line 23
Process exited with code 255.
Output for 7.2.0, 7.2.3, 7.2.9 - 7.2.10, 7.2.13, 7.2.23, 7.2.25 - 7.2.27, 7.3.0, 7.3.10 - 7.3.11, 7.3.13 - 7.3.14, 7.3.16
int(1) int(1) int(1) int(1) int(1)
Output for 7.2.4 - 7.2.5, 7.2.14, 7.2.28 - 7.2.29, 7.3.1, 7.3.6, 7.3.9, 7.3.15
int(3) int(3) int(3) int(3) int(3)