LoginSignup
9
4

More than 5 years have passed since last update.

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

Posted at

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はでません。

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4