我已经打开所有错误报告来清理一些未定义的索引,只是为了让我正在制作的应用程序更整洁。我注意到一个奇怪的行为:
假设我有以下数组:$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 上。