我已经打开所有错误报告来清理一些未定义的索引,只是为了让我正在制作的应用程序更整洁。我注意到一个奇怪的行为:
假设我有以下数组:$a = array('test' => false, 'foo' => 'bar')
如果我这样做if ($a['nothere'])
了,我会适当地得到通知Undefined index: nothere
。
但是,如果我这样做if ($a['test']['nothere'])
,我不会收到通知。完全没有。尽管nothere
绝对不是$a['test']
.
现在,如果我这样做了$a['test'] = array('baz' => 'poof')
,那么跑步if ($a['test']['nothere'])
确实会发出通知。
未定义的索引检查是否不检查空数组中的索引?这是在 PHP 5.2.8 上。