我有一些像这样的数组:
$array = array(
'one' => 'value_one',
'two' => 'value_two',
'three' => 'value_three',
'four' => array(
'1' => 'one',
'2' => 'two'
)
);
我在foreach循环中运行它,对于每个值,我正在运行其他代码。
foreach($array as $key=>$value)
{
switch($value)
{
case 'value_one':
// some code;
break;
case 'value_two':
// some code;
break;
case 'value_three':
// some code;
break;
}
}
我想知道有没有办法检查最后一个是数组还是stdClass对象?
提前谢谢。
答案 0 :(得分:0)
喜欢这样
if (is_object($value)) {
// do something
} elseif (is_array($value)) {
// do something
} else {
// error
}
答案 1 :(得分:0)
不直接。您可以找到将所有内容拟合(嵌套)到switch
语句中的方法,但实际上这样做没有实际意义,只会导致编写错误的代码。
最好切换到if
语句:
if ($value === 'value_one') {
}
else if ($value === 'value_two') {
}
else if ($value === 'value_three') {
}
else if (is_array($value)) {
}
else if ($value instanceof stdClass) {
}
答案 2 :(得分:0)
你可以利用这样的default
案例:
switch($value)
{
case 'value_one':
// some code;
break;
case 'value_two':
// some code;
break;
case 'value_three':
// some code;
break;
default:
if(is_array($value)) {
//some code for array here...
}
}