3v4l.org

run code in 300+ PHP versions simultaneously
<?php $foo = new ArrayIterator(get_declared_classes()); $bar = new CachingIterator($foo); foreach($bar as $class) { echo 'Current: ' . $class . '. Next: ' . $bar->getInnerIterator()->current() . PHP_EOL; }
Output for git.master, git.master_jit
Current: InternalIterator. Next: Exception Current: Exception. Next: ErrorException Current: ErrorException. Next: Error Current: Error. Next: CompileError Current: CompileError. Next: ParseError Current: ParseError. Next: TypeError Current: TypeError. Next: ArgumentCountError Current: ArgumentCountError. Next: ValueError Current: ValueError. Next: ArithmeticError Current: ArithmeticError. Next: DivisionByZeroError Current: DivisionByZeroError. Next: UnhandledMatchError Current: UnhandledMatchError. Next: Closure Current: Closure. Next: Generator Current: Generator. Next: ClosedGeneratorException Current: ClosedGeneratorException. Next: WeakReference Current: WeakReference. Next: WeakMap Current: WeakMap. Next: Attribute Current: Attribute. Next: ReturnTypeWillChange Current: ReturnTypeWillChange. Next: AllowDynamicProperties Current: AllowDynamicProperties. Next: SensitiveParameter Current: SensitiveParameter. Next: SensitiveParameterValue Current: SensitiveParameterValue. Next: Fiber Current: Fiber. Next: FiberError Current: FiberError. Next: stdClass Current: stdClass. Next: DateTime Current: DateTime. Next: DateTimeImmutable Current: DateTimeImmutable. Next: DateTimeZone Current: DateTimeZone. Next: DateInterval Current: DateInterval. Next: DatePeriod Current: DatePeriod. Next: LibXMLError Current: LibXMLError. Next: SQLite3 Current: SQLite3. Next: SQLite3Stmt Current: SQLite3Stmt. Next: SQLite3Result Current: SQLite3Result. Next: InflateContext Current: InflateContext. Next: DeflateContext Current: DeflateContext. Next: DOMException Current: DOMException. Next: DOMImplementation Current: DOMImplementation. Next: DOMNode Current: DOMNode. Next: DOMNameSpaceNode Current: DOMNameSpaceNode. Next: DOMDocumentFragment Current: DOMDocumentFragment. Next: DOMDocument Current: DOMDocument. Next: DOMNodeList Current: DOMNodeList. Next: DOMNamedNodeMap Current: DOMNamedNodeMap. Next: DOMCharacterData Current: DOMCharacterData. Next: DOMAttr Current: DOMAttr. Next: DOMElement Current: DOMElement. Next: DOMText Current: DOMText. Next: DOMComment Current: DOMComment. Next: DOMCdataSection Current: DOMCdataSection. Next: DOMDocumentType Current: DOMDocumentType. Next: DOMNotation Current: DOMNotation. Next: DOMEntity Current: DOMEntity. Next: DOMEntityReference Current: DOMEntityReference. Next: DOMProcessingInstruction Current: DOMProcessingInstruction. Next: DOMXPath Current: DOMXPath. Next: finfo Current: finfo. Next: HashContext Current: HashContext. Next: JsonException Current: JsonException. Next: LogicException Current: LogicException. Next: BadFunctionCallException Current: BadFunctionCallException. Next: BadMethodCallException Current: BadMethodCallException. Next: DomainException Current: DomainException. Next: InvalidArgumentException Current: InvalidArgumentException. Next: LengthException Current: LengthException. Next: OutOfRangeException Current: OutOfRangeException. Next: RuntimeException Current: RuntimeException. Next: OutOfBoundsException Current: OutOfBoundsException. Next: OverflowException Current: OverflowException. Next: RangeException Current: RangeException. Next: UnderflowException Current: UnderflowException. Next: UnexpectedValueException Current: UnexpectedValueException. Next: RecursiveIteratorIterator Current: RecursiveIteratorIterator. Next: IteratorIterator Current: IteratorIterator. Next: FilterIterator Current: FilterIterator. Next: RecursiveFilterIterator Current: RecursiveFilterIterator. Next: CallbackFilterIterator Current: CallbackFilterIterator. Next: RecursiveCallbackFilterIterator Current: RecursiveCallbackFilterIterator. Next: ParentIterator Current: ParentIterator. Next: LimitIterator Current: LimitIterator. Next: CachingIterator Current: CachingIterator. Next: RecursiveCachingIterator Current: RecursiveCachingIterator. Next: NoRewindIterator Current: NoRewindIterator. Next: AppendIterator Current: AppendIterator. Next: InfiniteIterator Current: InfiniteIterator. Next: RegexIterator Current: RegexIterator. Next: RecursiveRegexIterator Current: RecursiveRegexIterator. Next: EmptyIterator Current: EmptyIterator. Next: RecursiveTreeIterator Current: RecursiveTreeIterator. Next: ArrayObject Current: ArrayObject. Next: ArrayIterator Current: ArrayIterator. Next: RecursiveArrayIterator Current: RecursiveArrayIterator. Next: SplFileInfo Current: SplFileInfo. Next: DirectoryIterator Current: DirectoryIterator. Next: FilesystemIterator Current: FilesystemIterator. Next: RecursiveDirectoryIterator Current: RecursiveDirectoryIterator. Next: GlobIterator Current: GlobIterator. Next: SplFileObject Current: SplFileObject. Next: SplTempFileObject Current: SplTempFileObject. Next: SplDoublyLinkedList Current: SplDoublyLinkedList. Next: SplQueue Current: SplQueue. Next: SplStack Current: SplStack. Next: SplHeap Current: SplHeap. Next: SplMinHeap Current: SplMinHeap. Next: SplMaxHeap Current: SplMaxHeap. Next: SplPriorityQueue Current: SplPriorityQueue. Next: SplFixedArray Current: SplFixedArray. Next: SplObjectStorage Current: SplObjectStorage. Next: MultipleIterator Current: MultipleIterator. Next: PDOException Current: PDOException. Next: PDO Current: PDO. Next: PDOStatement Current: PDOStatement. Next: PDORow Current: PDORow. Next: SessionHandler Current: SessionHandler. Next: Random\RandomError Current: Random\RandomError. Next: Random\BrokenRandomEngineError Current: Random\BrokenRandomEngineError. Next: Random\RandomException Current: Random\RandomException. Next: Random\Engine\Mt19937 Current: Random\Engine\Mt19937. Next: Random\Engine\PcgOneseq128XslRr64 Current: Random\Engine\PcgOneseq128XslRr64. Next: Random\Engine\Xoshiro256StarStar Current: Random\Engine\Xoshiro256StarStar. Next: Random\Engine\Secure Current: Random\Engine\Secure. Next: Random\Randomizer Current: Random\Randomizer. Next: ReflectionException Current: ReflectionException. Next: Reflection Current: Reflection. Next: ReflectionFunctionAbstract Current: ReflectionFunctionAbstract. Next: ReflectionFunction Current: ReflectionFunction. Next: ReflectionGenerator Current: ReflectionGenerator. Next: ReflectionParameter Current: ReflectionParameter. Next: ReflectionType Current: ReflectionType. Next: ReflectionNamedType Current: ReflectionNamedType. Next: ReflectionUnionType Current: ReflectionUnionType. Next: ReflectionIntersectionType Current: ReflectionIntersectionType. Next: ReflectionMethod Current: ReflectionMethod. Next: ReflectionClass Current: ReflectionClass. Next: ReflectionObject Current: ReflectionObject. Next: ReflectionProperty Current: ReflectionProperty. Next: ReflectionClassConstant Current: ReflectionClassConstant. Next: ReflectionExtension Current: ReflectionExtension. Next: ReflectionZendExtension Current: ReflectionZendExtension. Next: ReflectionReference Current: ReflectionReference. Next: ReflectionAttribute Current: ReflectionAttribute. Next: ReflectionEnum Current: ReflectionEnum. Next: ReflectionEnumUnitCase Current: ReflectionEnumUnitCase. Next: ReflectionEnumBackedCase Current: ReflectionEnumBackedCase. Next: ReflectionFiber Current: ReflectionFiber. Next: __PHP_Incomplete_Class Current: __PHP_Incomplete_Class. Next: AssertionError Current: AssertionError. Next: php_user_filter Current: php_user_filter. Next: Directory Current: Directory. Next: SimpleXMLElement Current: SimpleXMLElement. Next: SimpleXMLIterator Current: SimpleXMLIterator. Next: PharException Current: PharException. Next: Phar Current: Phar. Next: PharData Current: PharData. Next: PharFileInfo Current: PharFileInfo. Next: PhpToken Current: PhpToken. Next: XMLParser Current: XMLParser. Next: XMLReader Current: XMLReader. Next: XMLWriter Current: XMLWriter. Next: GMP Current: GMP. Next: Collator Current: Collator. Next: NumberFormatter Current: NumberFormatter. Next: Normalizer Current: Normalizer. Next: Locale Current: Locale. Next: MessageFormatter Current: MessageFormatter. Next: IntlDateFormatter Current: IntlDateFormatter. Next: IntlDatePatternGenerator Current: IntlDatePatternGenerator. Next: ResourceBundle Current: ResourceBundle. Next: Transliterator Current: Transliterator. Next: IntlTimeZone Current: IntlTimeZone. Next: IntlCalendar Current: IntlCalendar. Next: IntlGregorianCalendar Current: IntlGregorianCalendar. Next: Spoofchecker Current: Spoofchecker. Next: IntlException Current: IntlException. Next: IntlIterator Current: IntlIterator. Next: IntlBreakIterator Current: IntlBreakIterator. Next: IntlRuleBasedBreakIterator Current: IntlRuleBasedBreakIterator. Next: IntlCodePointBreakIterator Current: IntlCodePointBreakIterator. Next: IntlPartsIterator Current: IntlPartsIterator. Next: UConverter Current: UConverter. Next: IntlChar Current: IntlChar. Next:
Output for rfc.property-hooks
Current: InternalIterator. Next: Exception Current: Exception. Next: ErrorException Current: ErrorException. Next: Error Current: Error. Next: CompileError Current: CompileError. Next: ParseError Current: ParseError. Next: TypeError Current: TypeError. Next: ArgumentCountError Current: ArgumentCountError. Next: ValueError Current: ValueError. Next: ArithmeticError Current: ArithmeticError. Next: DivisionByZeroError Current: DivisionByZeroError. Next: UnhandledMatchError Current: UnhandledMatchError. Next: Closure Current: Closure. Next: Generator Current: Generator. Next: ClosedGeneratorException Current: ClosedGeneratorException. Next: WeakReference Current: WeakReference. Next: WeakMap Current: WeakMap. Next: Attribute Current: Attribute. Next: ReturnTypeWillChange Current: ReturnTypeWillChange. Next: AllowDynamicProperties Current: AllowDynamicProperties. Next: SensitiveParameter Current: SensitiveParameter. Next: SensitiveParameterValue Current: SensitiveParameterValue. Next: Fiber Current: Fiber. Next: FiberError Current: FiberError. Next: stdClass Current: stdClass. Next: DateTime Current: DateTime. Next: DateTimeImmutable Current: DateTimeImmutable. Next: DateTimeZone Current: DateTimeZone. Next: DateInterval Current: DateInterval. Next: DatePeriod Current: DatePeriod. Next: DateError Current: DateError. Next: DateObjectError Current: DateObjectError. Next: DateRangeError Current: DateRangeError. Next: DateException Current: DateException. Next: DateInvalidTimeZoneException Current: DateInvalidTimeZoneException. Next: DateInvalidOperationException Current: DateInvalidOperationException. Next: DateMalformedStringException Current: DateMalformedStringException. Next: DateMalformedIntervalStringException Current: DateMalformedIntervalStringException. Next: DateMalformedPeriodStringException Current: DateMalformedPeriodStringException. Next: LibXMLError Current: LibXMLError. Next: SQLite3 Current: SQLite3. Next: SQLite3Stmt Current: SQLite3Stmt. Next: SQLite3Result Current: SQLite3Result. Next: InflateContext Current: InflateContext. Next: DeflateContext Current: DeflateContext. Next: DOMException Current: DOMException. Next: DOMImplementation Current: DOMImplementation. Next: DOMNode Current: DOMNode. Next: DOMNameSpaceNode Current: DOMNameSpaceNode. Next: DOMDocumentFragment Current: DOMDocumentFragment. Next: DOMDocument Current: DOMDocument. Next: DOMNodeList Current: DOMNodeList. Next: DOMNamedNodeMap Current: DOMNamedNodeMap. Next: DOMCharacterData Current: DOMCharacterData. Next: DOMAttr Current: DOMAttr. Next: DOMElement Current: DOMElement. Next: DOMText Current: DOMText. Next: DOMComment Current: DOMComment. Next: DOMCdataSection Current: DOMCdataSection. Next: DOMDocumentType Current: DOMDocumentType. Next: DOMNotation Current: DOMNotation. Next: DOMEntity Current: DOMEntity. Next: DOMEntityReference Current: DOMEntityReference. Next: DOMProcessingInstruction Current: DOMProcessingInstruction. Next: DOMXPath Current: DOMXPath. Next: finfo Current: finfo. Next: HashContext Current: HashContext. Next: JsonException Current: JsonException. Next: LogicException Current: LogicException. Next: BadFunctionCallException Current: BadFunctionCallException. Next: BadMethodCallException Current: BadMethodCallException. Next: DomainException Current: DomainException. Next: InvalidArgumentException Current: InvalidArgumentException. Next: LengthException Current: LengthException. Next: OutOfRangeException Current: OutOfRangeException. Next: RuntimeException Current: RuntimeException. Next: OutOfBoundsException Current: OutOfBoundsException. Next: OverflowException Current: OverflowException. Next: RangeException Current: RangeException. Next: UnderflowException Current: UnderflowException. Next: UnexpectedValueException Current: UnexpectedValueException. Next: RecursiveIteratorIterator Current: RecursiveIteratorIterator. Next: IteratorIterator Current: IteratorIterator. Next: FilterIterator Current: FilterIterator. Next: RecursiveFilterIterator Current: RecursiveFilterIterator. Next: CallbackFilterIterator Current: CallbackFilterIterator. Next: RecursiveCallbackFilterIterator Current: RecursiveCallbackFilterIterator. Next: ParentIterator Current: ParentIterator. Next: LimitIterator Current: LimitIterator. Next: CachingIterator Current: CachingIterator. Next: RecursiveCachingIterator Current: RecursiveCachingIterator. Next: NoRewindIterator Current: NoRewindIterator. Next: AppendIterator Current: AppendIterator. Next: InfiniteIterator Current: InfiniteIterator. Next: RegexIterator Current: RegexIterator. Next: RecursiveRegexIterator Current: RecursiveRegexIterator. Next: EmptyIterator Current: EmptyIterator. Next: RecursiveTreeIterator Current: RecursiveTreeIterator. Next: ArrayObject Current: ArrayObject. Next: ArrayIterator Current: ArrayIterator. Next: RecursiveArrayIterator Current: RecursiveArrayIterator. Next: SplFileInfo Current: SplFileInfo. Next: DirectoryIterator Current: DirectoryIterator. Next: FilesystemIterator Current: FilesystemIterator. Next: RecursiveDirectoryIterator Current: RecursiveDirectoryIterator. Next: GlobIterator Current: GlobIterator. Next: SplFileObject Current: SplFileObject. Next: SplTempFileObject Current: SplTempFileObject. Next: SplDoublyLinkedList Current: SplDoublyLinkedList. Next: SplQueue Current: SplQueue. Next: SplStack Current: SplStack. Next: SplHeap Current: SplHeap. Next: SplMinHeap Current: SplMinHeap. Next: SplMaxHeap Current: SplMaxHeap. Next: SplPriorityQueue Current: SplPriorityQueue. Next: SplFixedArray Current: SplFixedArray. Next: SplObjectStorage Current: SplObjectStorage. Next: MultipleIterator Current: MultipleIterator. Next: PDOException Current: PDOException. Next: PDO Current: PDO. Next: PDOStatement Current: PDOStatement. Next: PDORow Current: PDORow. Next: SessionHandler Current: SessionHandler. Next: Random\RandomError Current: Random\RandomError. Next: Random\BrokenRandomEngineError Current: Random\BrokenRandomEngineError. Next: Random\RandomException Current: Random\RandomException. Next: Random\Engine\Mt19937 Current: Random\Engine\Mt19937. Next: Random\Engine\PcgOneseq128XslRr64 Current: Random\Engine\PcgOneseq128XslRr64. Next: Random\Engine\Xoshiro256StarStar Current: Random\Engine\Xoshiro256StarStar. Next: Random\Engine\Secure Current: Random\Engine\Secure. Next: Random\Randomizer Current: Random\Randomizer. Next: Random\IntervalBoundary Current: Random\IntervalBoundary. Next: ReflectionException Current: ReflectionException. Next: Reflection Current: Reflection. Next: ReflectionFunctionAbstract Current: ReflectionFunctionAbstract. Next: ReflectionFunction Current: ReflectionFunction. Next: ReflectionGenerator Current: ReflectionGenerator. Next: ReflectionParameter Current: ReflectionParameter. Next: ReflectionType Current: ReflectionType. Next: ReflectionNamedType Current: ReflectionNamedType. Next: ReflectionUnionType Current: ReflectionUnionType. Next: ReflectionIntersectionType Current: ReflectionIntersectionType. Next: ReflectionMethod Current: ReflectionMethod. Next: ReflectionClass Current: ReflectionClass. Next: ReflectionObject Current: ReflectionObject. Next: ReflectionProperty Current: ReflectionProperty. Next: ReflectionClassConstant Current: ReflectionClassConstant. Next: ReflectionExtension Current: ReflectionExtension. Next: ReflectionZendExtension Current: ReflectionZendExtension. Next: ReflectionReference Current: ReflectionReference. Next: ReflectionAttribute Current: ReflectionAttribute. Next: ReflectionEnum Current: ReflectionEnum. Next: ReflectionEnumUnitCase Current: ReflectionEnumUnitCase. Next: ReflectionEnumBackedCase Current: ReflectionEnumBackedCase. Next: ReflectionFiber Current: ReflectionFiber. Next: __PHP_Incomplete_Class Current: __PHP_Incomplete_Class. Next: AssertionError Current: AssertionError. Next: php_user_filter Current: php_user_filter. Next: Directory Current: Directory. Next: SimpleXMLElement Current: SimpleXMLElement. Next: SimpleXMLIterator Current: SimpleXMLIterator. Next: PharException Current: PharException. Next: Phar Current: Phar. Next: PharData Current: PharData. Next: PharFileInfo Current: PharFileInfo. Next: PhpToken Current: PhpToken. Next: XMLParser Current: XMLParser. Next: XMLReader Current: XMLReader. Next: XMLWriter Current: XMLWriter. Next: GMP Current: GMP. Next: Collator Current: Collator. Next: NumberFormatter Current: NumberFormatter. Next: Normalizer Current: Normalizer. Next: Locale Current: Locale. Next: MessageFormatter Current: MessageFormatter. Next: IntlDateFormatter Current: IntlDateFormatter. Next: IntlDatePatternGenerator Current: IntlDatePatternGenerator. Next: ResourceBundle Current: ResourceBundle. Next: Transliterator Current: Transliterator. Next: IntlTimeZone Current: IntlTimeZone. Next: IntlCalendar Current: IntlCalendar. Next: IntlGregorianCalendar Current: IntlGregorianCalendar. Next: Spoofchecker Current: Spoofchecker. Next: IntlException Current: IntlException. Next: IntlIterator Current: IntlIterator. Next: IntlBreakIterator Current: IntlBreakIterator. Next: IntlRuleBasedBreakIterator Current: IntlRuleBasedBreakIterator. Next: IntlCodePointBreakIterator Current: IntlCodePointBreakIterator. Next: IntlPartsIterator Current: IntlPartsIterator. Next: UConverter Current: UConverter. Next: IntlChar Current: IntlChar. Next:

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
42.86 ms | 420 KiB | 8 Q