3v4l.org

run code in 300+ 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 CommentWow { public function wow(CommentCount $commentCount): string { if ($commentCount->getCount() == 0) { return "Sad. :("; } if ($commentCount->getCount() > 0 && $commentCount->getCount() < 5) { return "Ok."; } if ($commentCount->getCount() >= 5) { return "Wow! :)"; } } } 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(); $wow = new CommentWow(); var_dump($wow->wow(commentCount)); var_dump($wow->wow(commentCount)); var_dump($wow->wow(commentCount)); var_dump($wow->wow(commentCount)); var_dump($wow->wow(commentCount));
Output for 7.2.1 - 7.2.20, 7.2.22 - 7.2.25, 7.2.27 - 7.2.29, 7.3.0, 7.3.2 - 7.3.4, 7.3.6 - 7.3.7, 7.3.9, 7.3.11, 7.3.13 - 7.3.14, 7.3.16 - 7.3.17, 7.4.1 - 7.4.5
Warning: Use of undefined constant commentCount - assumed 'commentCount' (this will throw an Error in a future version of PHP) in /in/PcWp4 on line 92 Fatal error: Uncaught TypeError: Argument 1 passed to CommentWow::wow() must be an instance of CommentCount, string given, called in /in/PcWp4 on line 92 and defined in /in/PcWp4:57 Stack trace: #0 /in/PcWp4(92): CommentWow->wow('commentCount') #1 {main} thrown in /in/PcWp4 on line 57
Process exited with code 255.
Output for 7.2.0, 7.2.21, 7.2.26, 7.3.1, 7.3.5, 7.3.8, 7.3.10, 7.3.12, 7.3.15, 7.4.0
Error: could not connect to database Warning: Use of undefined constant commentCount - assumed 'commentCount' (this will throw an Error in a future version of PHP) in /in/PcWp4 on line 92 Fatal error: Uncaught TypeError: Argument 1 passed to CommentWow::wow() must be an instance of CommentCount, string given, called in /in/PcWp4 on line 92 and defined in /in/PcWp4:57 Stack trace: #0 /in/PcWp4(92): CommentWow->wow('commentCount') #1 {main} thrown in /in/PcWp4 on line 57
Process exited with code 255.

preferences:
79.05 ms | 403 KiB | 59 Q