PHP

多次元配列のisset() は一気にチェックできる

isset() 関数で多次元配列のキー存在チェックをする際、たまに

<?php
if (isset($a) && isset($a['foo']) && isset($a['foo']['bar'])) {
    // do something
}

と、上から丁寧にチェックしているソースを見かけますが
この場合、途中のチェックは不要で

<?php
if (isset($a['foo']['bar'])) {
    // do something
}

とだけ書けば大丈夫です。

検証ソース

test.php
<?php
error_reporting(E_ALL);

var_dump(isset($a['foo']['bar']));

$a = array();
var_dump(isset($a['foo']['bar']));

$a['foo'] = array();
var_dump(isset($a['foo']['bar']));

$a['foo']['bar'] = 1;
var_dump(isset($a['foo']['bar']));

実行結果

$ php test.php
bool(false)
bool(false)
bool(false)
bool(true)

途中 $a$a['foo'] が未定義でも、Undefined variable の Noticeはでません。