我很高兴PHP 7.1引入了可迭代伪类型。
现在,当您只是循环遍历这种类型的参数时,这非常棒。但当您需要将其传递给仅接受array
或Traversable
的PHP函数时,我不清楚该怎么做。例如,如果您想进行一个数组差异,并且您的iterable
是Traversable
,那么您将获得一个array
。相反,如果您调用一个需要 Iterator 的函数,如果iterable
是array
,则会出现错误。
是否有类似于iterable_to_array
(而不是:iterator_to_array
)和iterable_to_traversable
的东西?
我正在寻找一种解决方案,可以避免我在函数中使用条件语句来处理此差异,并且不依赖于我定义自己的全局函数。
使用PHP 7.1
array_push
,因为...
将解析为空。 - Oleg Abrazhaevarray_push
可以仅带有第一个参数的调用。 - dakujem