在一个对象的构造函数中,我希望能够传递一个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)数组呢?
答案 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)) ...