如何检查变量是对象还是数组

时间:2014-10-23 21:38:05

标签: php arrays object

我试图检查传递的变量是php中的对象还是数组。

我有类似

的东西
if(is_object($product>item)) {
     if(isset($product->item->ArrayOfImage->path)) {
          $img = $product->item->ArrayOfImage->path
     }else{
          unset($img);
     }
}else{
    if(isset($product->item[$i]->ArrayOfImage->path)){  //$i is the index from a for loop
        $img = $product->item[$i]->ArrayOfImage->path
    }else{
        unset($img);
    }
}

以上代码将检查$product->item是否为对象,如果不是,则将其视为数组。它还将检查值是否已设置。我觉得我可以重构它但不知道从哪里开始。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以使用php内置函数gettype来检测变量的类型:

string gettype ( mixed $var );

或者您可以使用is_objectis_array函数检查变量类型:

bool is_array ( mixed $var )
bool is_object ( mixed $var )