I'm quite happy that PHP 7.1 introduced [the iterable pseudo-type](https://secure.php.net/manual/en/language.types.iterable.php).

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