小技プログラミング

Undefined variable,Undefined indexのエラーが表示される

初期化されていない可能性のある変数を参照すると『Undefined index』、出力した場合は『Undefined variable』のNotice(通知)が表示されます。
IF文等の中で初期化している場合も、初期化されない分岐がある時はNotice(通知)が表示されてしまいます。

下記コードの$numで『Undefined variable』が出力される場合にisset関数を利用して回避する例を記載します。

//$numが初期化されていない場合にUndefined variableが表示されるパターン
print $num;

//初期化チェックを行うことでUndefined variableを防ぐパターン
//値がセットされていない場合は初期化を行う

if(!isset($num)){
$num = "初期化";
}
print $num;

Notice(通知)を表示させない方法もあります。
php.iniファイルでerror_reportingの設定を変更します。
以下設定例です。

;全てのエラーを表示させる
error_reporting = E_ALL

;実行時エラーを表示させる
error_reporting = E_ERROR | E_WARNING | E_PARSE

;実行時エラーと初期化通知・変数スペルミスも表示
error_reporting = E_ERROR | E_WARNING | E_PARSE | E_NOTICE

※通知はE_NOTICEになります。「E_ERROR | E_WARNING | E_PARSE」などにして通知の出力を消すことが出来ます。

初期化の検証方法については下記もご参考ください。
初期化の検証でis_null()とisset()のどちらを使うのが正しいか?

最終更新日:2018/5/22