我想使用带有变量的 foreach
循环,但是这个变量可以是许多不同的类型,例如 NULL
。
所以在 foreach
之前我测试一下:
if(is_array($var)){
foreach($var as ...
但我意识到它也可以是一个实现Iterator
接口(interface)的类。也许我是盲人但是如何检查该类是否实现了接口(interface)?是否有类似 is_a
函数或 inherits
运算符之类的东西?我找到了class_implements
,我可以使用它,但也许有更简单的东西?
其次,更重要的是,我想这个函数存在,足以检查变量 is_array
或“实现 Iterator
接口(interface)”还是我应该测试一些东西更多?
最佳答案
如果您在函数中使用 foreach
并且您需要一个数组或 Traversable对象,您可以键入提示该功能的对象:
function myFunction(array $a)
function myFunction(Traversable)
如果您没有在函数中使用 foreach
或者您希望同时使用 you can simply use this construct检查是否可以迭代变量:
if (is_array($a) or ($a instanceof Traversable))
关于php - 如何检查变量是否为数组?...或类似数组的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15603952/