動くことは動くんだけど…

Apacheが吐き出すログファイルを見ると、時々こんなエラーメッセージが書かれていることがあります。

PHP Notice: Undefined index: [変数名] in [ファイル名] on line [行番号]
PHP Notice: Undefined variable: [変数名] in [ファイル名] on line [行番号]

「定義されていない変数名を使っているよ~」っていう警告です。
冒頭にNoticeってついているので、別に放置しておいてもプログラムの動作上はそれほど問題ありません。
でもエラーログに出ているのはあまりかっこよくない…。
というわけで、対処法です。

まずはUndefined indexの方。
例えば…
$submit_value = $_POST[‘submit’];

フォームからsubmitという名前の付いた変数が送られてこないと、Undefined indexになります。
$submit_valueにはnullが入って処理は続行されますので、動作には問題ありません。

対策としては…
$submit_value = null;
if (isset($_POST[‘submit’])) {
$submit_value = $_POST[‘submit’];
}

って感じでしょうか。
issetでチェックして、値が入っていた時だけ処理をするようにすれば、エラーになりません。

続いて、Undefined variableの方。
例えば…
$value1 = $value2;

$value1、$value2共にこの行が初登場だとすると、$value2の方がUndefined variableです。
左辺の変数はエラーになりません。
左辺もUndefined variableになるとすれば、変数の初期化の度にエラーになってログファイルが大変なことになりますよね。(^^;)

対策としては…
$value2 = 0;
$value1 = $value2;

こんな感じで使う前に初期化しておけば大丈夫。

ま、熟練PHPerには「は?何を今更…」って感じですけど、私はまだまだ初心者なので、備忘録ってことで。(^^;)