すべてのエラー報告をオンにして、いくつかの未定義のインデックスをクリーンアップしました。これは、作成中のアプリをよりきちんとしたものにするためです。奇妙な動作に気付きました:
次の配列があるとします。$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 上にあります。