I'm quite happy that PHP 7.1 introduced the iterable pseudo-type.
Now while this is great when just looping over a parameter of this type, it is unclear to me what to do when you need to pass it to PHP functions that accept just an array
or just a Traversable
. For instance, if you want to do an array_diff, and your iterable
is a Traversable
, you will get an array
. Conversely, if you call a function that takes an Iterator, you will get an error if the iterable
is an array
.
Is there something like iterable_to_array
(NOT: iterator_to_array
) and iterable_to_traversable
?
I'm looking for a solution that avoids conditionals in my functions just to take care of this difference, and that does not depend on me defining my own global functions.
Using PHP 7.1