检查$ var是int还是数组

时间:2012-10-20 11:55:37

标签: php arrays

在一个对象的构造函数中,我希望能够传递一个int变量(表示一个id然后获取到数据库)或一个数组(当我已经获取到数据库时)

我试过这样的事情:

__construct($var){
     if(isset($var['id'])){ /*tried also if($var['id']) != '')*/
        $this->id = $var['id'];
     }else{
        $this->id = $var;
      }
}

问题是通过将一个int值参数作为$ var传递,它将进入if的第一个案例。

那么我怎么能检查$ var是一个(asociative)数组呢?

4 个答案:

答案 0 :(得分:4)

您可以使用is_int ($var)检查它是否为int,如果是数组则使用is_array ($var)

答案 1 :(得分:1)

您可以使用php is_array()is_int()功能

if(is_array($var)){
        $this->id = $var['id'];
     }else{
        $this->id = $var;
      }

if(is_int($var)){
           $this->id = $var;
         }elseif(is_array($var)){           
           $this->id = $var['id'];
          }

答案 2 :(得分:1)

至少有两种不同的检查方法:
gettype(),它将返回类型为

的字符串
$type = gettype($var);
switch($type) {
    case 'array':
        // ....
        break;
    case 'integer':
        // ...
        break;
    // ....
}

以及

is_int(),分别为is_array(),不知何故,不会令人惊讶地返回boolean值。

答案 3 :(得分:0)

试试这个:

if (is_array($var)) ...