【PHPエラー】Notice: Undefined variableの解決方法
こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。
PHPでプログラムを作っていると突然表示されるエラー文章。突然エラーが表示されると焦ってしまいますよね。
この記事では「Notice: Undefined variable」エラーというPHPでプログラムを作っているとよく発生するエラーについて原因と、解決方法を解説します。
Notice: Undefined variableとは
Notice: Undefined variable ●● in ▲▲ on line ■
●●:値の無い変数名
▲▲:ディレクトリ名/ファイル名
■■:エラーの原因となる●●が書かれている行数
エラーが表示される原因
<?php
echo $var;
// Notice: Undefined variable var ...が表示されます
?>
このWarningエラーは、存在しない変数を参照しようとした時に表示されるものです。値のない変数というのは参照することが出来ません。
そのような時に表示されるエラーがNotice: Undefined variableです。
解決方法
このエラーが表示されたときの解決方法はいくつかあります。それぞれの解決方法を順番に見ていきましょう。
変数の有無を確認する
<?php
if (isset($var)) {
echo $var;
}
?>
isset関数を使用して、変数に値があるかどうかを事前にチェックします。値がある場合のみ変数の値を出力します。
変数に値を入れる
<?php
$var = "Hello, world!";
echo $var;
?>
このエラーは変数に値が格納されていないことが原因です。そのため予め変数に値を格納することでエラーの表示を防ぐことが出来ます。
ただし、この方法の場合、必ず変数に値を入れる必要があるため、現実的には上でご紹介した方法を取ることが一般的です。
エラー表示設定を変更する
サーバーの管理画面からPHPの設定や.htaccess、php.iniの設定を変更してエラー出力を無くすことでもエラーの表示を無くすことが出来ます。
しかし、この方法は根本的な解決にはなっていません。後々、想定外の問題が発生する恐れがあるため、基本的には上の解決方法を取るようにします。
突然表示されるようになった
PHPプログラムを改編していないのに突然エラーが表示されるようになったという事が起こることもあります。
この場合、以下のようなことが原因として考えられます。
エラー表示設定が変更された
先ほど解決方法の一つとして紹介したエラー表示設定の変更。以前まではエラ―表示設定が無効になっていたけど、ある時誰かがエラー表示設定を有効化した。そんな時、突然エラーが表示されるようになります。
このようなことが起こる恐れもあるため、エラ―表示設定の変更でこのエラーを解決することは避けたほうが賢明です。
サーバーを変更した
PHPプログラムは改編していないけどサーバーを移行した、そういう場合もエラーが起こる恐れがあります。
移行前のサーバーではエラー表示設定が無効になっていたけど、移行先のサーバーではエラー表示設定が有効になっていた、こんな事も想定されるため、やはりエラー表示設定の変更でこのエラーを解決することは避けたほうがいいですね。
まとめ
今回の記事ではNotice: Undefined variableというPHPエラーについて解説しました。
このエラーはどれだけプログラミングに慣れていても、うっかりで発生してしまう恐れのあるエラーです。
ただし、解決方法は至ってシンプルです。このエラーに出くわしてしまっても焦らず、エラー文から原因となる箇所を適切に書き換えていきましょう。