$val = 'abcd';
if(isset($val['grp'][0]))
{
echo '1111<br/>';
}
if(isset($val['grp'][1]))
{
echo '2222<br/>';
}
输出:1111
很奇怪吧,如果直接打印呢?
var_dump($val['grp'][0]);
输出:string 'a' (length=1)
当然开了调试模式还会有警告,但是如果把调试关了,则就是上面的输出
这种情况在for循环中很容易出现,
所以我们在不确定某个变量一定是数组的情况下,最好多加一层,例如下面的判断:
$val = 'abcd';
if(isset($val['grp']) && isset($val['grp'][0]))
{
echo '1111<br/>';
}