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 Logger { public static function log(string $log): void { echo $log; } } class CommentCount { private $count; public function __construct(int $count) { $this->count = $count; } public function getCount(): int { return $this->count; } } class Post extends Model { public function commentCount(): CommentCount { try { return new CommentCount($this->comments->count()); } catch (Exception $e) { Logger::log($e->getMessage()); return new CommentCount(0); } } } $post = new Post(); $commentCount = $post->commentCount(); var_dump($commentCount->getCount()); var_dump($commentCount->getCount()); var_dump($commentCount->getCount()); var_dump($commentCount->getCount()); var_dump($commentCount->getCount());
based on odnch
Output for 7.2.0, 7.2.4, 7.2.6, 7.2.8, 7.2.12, 7.2.14, 7.2.18, 7.2.20, 7.3.1, 7.3.5, 7.3.7 - 7.3.8, 7.4.1, 7.4.5
int(2) int(2) int(2) int(2) int(2)
Output for 7.2.29 - 7.3.0, 7.3.6, 7.3.16, 7.4.0, 7.4.4
int(5) int(5) int(5) int(5) int(5)
Output for 7.2.3, 7.2.11, 7.2.13, 7.2.15 - 7.2.16, 7.2.19, 7.2.24, 7.2.27 - 7.2.28, 7.3.2 - 7.3.3, 7.3.10 - 7.3.12, 7.3.15, 7.4.3
Error: could not connect to databaseint(0) int(0) int(0) int(0) int(0)
Output for 7.2.1 - 7.2.2, 7.2.5, 7.2.7, 7.2.10, 7.2.17, 7.2.21 - 7.2.23, 7.3.4, 7.3.9, 7.3.13, 7.4.2
int(3) int(3) int(3) int(3) int(3)
Output for 7.2.9, 7.2.25 - 7.2.26, 7.3.14, 7.3.17
int(1) int(1) int(1) int(1) int(1)