1--TEST-- 2SPL: Calling __construct(void) on class extending SPL iterator 3--CREDITS-- 4Sebastian Schürmann 5--FILE-- 6<?php 7 8class myFilterIterator extends FilterIterator { 9 function accept(): bool { } 10} 11 12class myCachingIterator extends CachingIterator { } 13 14class myRecursiveCachingIterator extends RecursiveCachingIterator { } 15 16class myParentIterator extends ParentIterator { } 17 18class myLimitIterator extends LimitIterator { } 19 20class myNoRewindIterator extends NoRewindIterator {} 21 22try { 23 $it = new myFilterIterator(); 24} catch (TypeError $e) { 25 echo $e->getMessage(), "\n"; 26} 27 28try { 29 $it = new myCachingIterator(); 30} catch (TypeError $e) { 31 echo $e->getMessage(), "\n"; 32} 33 34try { 35 $it = new myRecursiveCachingIterator(); 36} catch (TypeError $e) { 37 echo $e->getMessage(), "\n"; 38} 39 40try { 41 $it = new myParentIterator(); 42} catch (TypeError $e) { 43 echo $e->getMessage(), "\n"; 44} 45 46try { 47 $it = new myLimitIterator(); 48} catch (TypeError $e) { 49 echo $e->getMessage(), "\n"; 50} 51try { 52 $it = new myNoRewindIterator(); 53} catch (TypeError $e) { 54 echo $e->getMessage(), "\n"; 55} 56 57?> 58--EXPECT-- 59FilterIterator::__construct() expects exactly 1 argument, 0 given 60CachingIterator::__construct() expects at least 1 argument, 0 given 61RecursiveCachingIterator::__construct() expects at least 1 argument, 0 given 62ParentIterator::__construct() expects exactly 1 argument, 0 given 63LimitIterator::__construct() expects at least 1 argument, 0 given 64NoRewindIterator::__construct() expects exactly 1 argument, 0 given 65