- ベストアンサー
perlでいうdefiendのようなもので、警告をださない方法
厳密な警告は残したまま、ある配列の添え字が定義されているか調べたいのですが、この箇所だけ、error_reporting(E_USER_NOTICE)にして、自分でエラーハンドリングするしかないのでしょうか? <?php error_reporting(E_ALL); $a = array(); $b = is_null($a[1]); // <-- ここで判定したい。(しかし、E_ALLにすると警告が表示されます。) var_dump($b); // true ?>
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
E_ALLを指定すれば、値を設定していない変数や配列を参照したら エラーになるのは当たり前です。 $a[1]はNULLではなく未設定なのですから。 あえてかくなら <?php error_reporting(E_ALL); $a = array(); $b = isset($a[1])?is_null($a[1]):true; var_dump($b); // true ?> っとしてみてはいかがですか? 余談ですが、質問をしめるときはありがたくないならあえてお礼を つけろとはいいませんが、わかったのかわからないのかくらいは 書いてもらわないと、なげっぱなし感が強くてそのうち誰も 回答しなくなりますよ
お礼
警告がでないようになりました。 issetがdefinedと同等ということですね。 ありがとうごいました。