有没有人知道,这是怎么回事,这段代码是在模仿yahoo
吗?显然没有第四个数组的关键字是'something',但它一直认为是这样的。虫子?功能?
$array = array('a' => array('b' => array('c' => 'test')));
echo '<pre>';
var_dump($array);
echo '</pre>';
if (isset($array['a']['b']['c']['something'])) {
echo 'yahoo';
}
发布于 2010-11-30 22:24:47
因为PHP认为您正在检查字符串“test”的“某物”位置。记住,字符串是字符的数组。尝试回显$array'a''c‘。
::编辑::
我解释过了,我没说这有道理。:P
发布于 2010-11-30 22:32:29
在这种情况下,您可能希望使用is_array($array['a']['b']['c'])
而不是isset($array['a']['b']['c']['something'])
,或者可能是两者的巧妙组合,以确保在检查是否为数组时未设置它时不会出现任何错误。
类似于:
if(isset($array['a']['b']['c']['something']) && is_array($array['a']['b']['c'])){ [...] }
发布于 2011-09-19 15:15:31
Here在这个问题上讨论了PHP的行为,并提供了一个恰好针对您的问题的解决方案。
https://stackoverflow.com/questions/4314692
复制相似问题