3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types=1); namespace App; use Generator; use CachingIterator; $generator = /** * @return Generator<bool, bool> */ static function (): Generator { yield true => true; yield false => false; yield "foo" => 1; yield "bar" => 2; yield "baz" => 3; }; $iterator = new CachingIterator($generator()); foreach ($iterator as $k => $v) { var_dump($k, $v); } foreach ($iterator->getCache() as $k => $v) { var_dump($k, $v); }
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.30, 8.2.0 - 8.2.25, 8.3.0 - 8.3.13
bool(true) bool(true) bool(false) bool(false) string(3) "foo" int(1) string(3) "bar" int(2) string(3) "baz" int(3) Fatal error: Uncaught BadMethodCallException: CachingIterator does not use a full cache (see CachingIterator::__construct) in /in/G80RU:29 Stack trace: #0 /in/G80RU(29): CachingIterator->getCache() #1 {main} thrown in /in/G80RU on line 29
Process exited with code 255.

preferences:
58.42 ms | 407 KiB | 5 Q