3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface ProcessInterface { } interface RewindIterator extends Iterator { public function previous(): void; } interface ProcessListInterface extends RewindIterator { public function append(ProcessInterface $process): void; public function clear(): void; public function isEmpty(): bool; } final class ProcessList implements ProcessListInterface { private $processes = []; public function __construct(array $processes = []) { foreach ($processes as $process) { $this->append($process); } } public function append(ProcessInterface $process): void { $this->processes[] = $process; } public function clear(): void { $this->processes = []; } public function isEmpty(): bool { return empty($this->processes); } public function rewind(): ProcessInterface { return reset($this->processes); } public function current(): ProcessInterface { return current($this->processes); } public function key(): int { return key($this->processes); } public function next(): ProcessInterface { return next($this->processes); } public function previous(): ProcessInterface { return prev($this->processes); } public function valid(): bool { return key($this->processes) !== null; } }

preferences:
60.41 ms | 402 KiB | 5 Q