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--EXPECTF-- 26array(3) { 27 [0]=> 28 int(1) 29 [1]=> 30 int(2) 31 [2]=> 32 int(3) 33} 34object(Generator)#1 (0) { 35} 36object(ArrayIterator)#1 (1) { 37 ["storage":"ArrayIterator":private]=> 38 array(3) { 39 [0]=> 40 int(1) 41 [1]=> 42 int(2) 43 [2]=> 44 int(3) 45 } 46} 47Argument 1 passed to test() must be iterable, integer given, called in %s on line %d 48