PHPで変数が未定義でエラーになってしまうときの対処
目次
ダウンロードしてきたPHPのソースをサーバーに置いてワクワクしながらブラウザでいざ表示ってときにほとんどのケースで「Notice: Undefined variable~」というエラー表示になります(T_T)
原因は変数が定義されていないから
初期値は空だからと思って定義しなかったら、PHPは使用する変数にNULLでもいいから情報を予め入れておかないとエラーとなります。
$foo = ""; $foo = null; $foo = isset($_GET["foo"]) ? $_GET["foo"] : NULL;
沢山の変数にいちいちNULLや""を定義するのは面倒なので、なにか簡単にエラー回避して解決できないかと検索したら、ありました。
- 変数に@を付ける
echo @$foo;
- php.iniでerror_reportingを設定しておく
error_reporting = E_ALL & ~E_NOTICE
- スクリプト内でerror_reporting関数でエラーを制御する
error_reporting(E_ALL ^ E_NOTICE);
参考サイト
自分の環境の場合、Apaatchのレンタルサーバーではエラーが出ないのに、ローカルのIISだと出たりするなど、WEBサーバーが違うからかな?と思うこともありましたが、あんまり関係がなく、エラー処理が丁寧に行われていないスクリプトだと、500エラーが出たりして正常に動きませんでしたが、上記の対策で解決できました。