3v4l.org

run code in 300+ PHP versions simultaneously
<?php date_default_timezone_set('America/New_York'); class Block { private $start; private $end; private $callback; public function __construct($start, $end, callable $callback) { $this->start = $start; $this->end = $end; $this->callback = $callback; } public function check($time) { return $time > strtotime($this->start) && $time > strtotime($this->end); } public function invoke() { call_user_func($this->callback); } } $blocks = [ new Block('16:00:00', '18:00:00', function () { echo 'Foo!'; }), new Block('18:00:00', '20:00:00', function () { echo 'Bar!'; }), new Block('20:00:00', '22:00:00', function () { echo 'Qux!'; }), ]; while (true) { foreach ($blocks as $block) { if ($block->check()) { $block->invoke(); } } sleep(1); }
Output for 7.1.15 - 7.1.22, 7.2.3 - 7.2.33, 7.3.16 - 7.3.33, 7.4.3 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Block::check(), 0 passed in /in/NYITM on line 37 and exactly 1 expected in /in/NYITM:14 Stack trace: #0 /in/NYITM(37): Block->check() #1 {main} thrown in /in/NYITM on line 14
Process exited with code 255.
Output for 7.0.28 - 7.0.31
Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 15
Process exited with code 137.
Output for 5.6.34 - 5.6.38
Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16 Warning: Missing argument 1 for Block::check(), called in /in/NYITM on line 37 and defined in /in/NYITM on line 14 Notice: Undefined variable: time in /in/NYITM on line 16
Process exited with code 137.

preferences:
166.64 ms | 403 KiB | 165 Q