1--TEST-- 2iterable type#001 3--FILE-- 4<?php 5 6function test(iterable $iterable) { 7 var_dump($iterable); 8} 9 10function gen() { 11 yield 1; 12 yield 2; 13 yield 3; 14}; 15 16test([1, 2, 3]); 17test(gen()); 18test(new ArrayIterator([1, 2, 3])); 19 20try { 21 test(1); 22} catch (Throwable $e) { 23 echo $e->getMessage(); 24} 25?> 26--EXPECTF-- 27array(3) { 28 [0]=> 29 int(1) 30 [1]=> 31 int(2) 32 [2]=> 33 int(3) 34} 35object(Generator)#1 (0) { 36} 37object(ArrayIterator)#1 (1) { 38 ["storage":"ArrayIterator":private]=> 39 array(3) { 40 [0]=> 41 int(1) 42 [1]=> 43 int(2) 44 [2]=> 45 int(3) 46 } 47} 48test(): Argument #1 ($iterable) must be of type Traversable|array, int given, called in %s on line %d 49