[PHP]$_GET,$_POSTを使っても「Notice: Undefined index:」 が出ないようにする


昔作ったPHPプログラムを動かしてみたら「Notice: Undefined
index:」というエラーが多発してしまいました。その対処法というか、出ないようにする方法をやってみました。

変数を初期化してから使う

if ($_POST['hoge']) {
    処理
}

というように初期化しないでいきなり変数を使用するとエラーが出てしまうので、isset()でチェックして別の変数に値を入れ替えてから使用しています。

$hoge = isset($_POST['hoge']) ? $_POST['hoge'] : null;
if ($hoge) {
	処理
}

【 参 考 】

ただ、この方法だと他の変数もすべて同様の記述をしないといけないのが面倒です。

error_reporting()を使う

// 単純な実行時エラーを表示する
error_reporting(E_ERROR | E_WARNING | E_PARSE);

phpファイル内にerror_reporting()を記述してエラーレベルを下げる方法です。

この方法でも他のphpファイルにもすべて同様の記述をしないといけないのが面倒です。

php.iniを書き換える

error_reporting = E_ALL | E_STRICT

上のように書かれているコードを以下のように変更しました。Apacheを再起動後にアクセスしてみると、エラーは表示されなくなりました。

error_reporting = E_ALL & ~E_NOTICE

【 参 考 】