PHPを扱った仕事をしているため、PHPのコードを見ていく中でのデバッグ方法をお伝えします。
原因を探るために
原因をさぐるために下記の観点で見ることが多いです。
・変数にちゃんとした値が入っているか
・コードが正常に動いているか
・条件式で正しい方に分岐しているか
・Cookie セッション などコード意外の要因でエラーになっていないか
コードに書くもの
echo で処理が通っているか確認
echo 'TEST'; exit;
など打って、表示されればコードがそこまで通っているということ。
表示されなければその前の処理でエラーになっている。
var_dump()で変数の中身を確認
とすることでtest変数の中身を見ることができます。
print_r($test);も同様に見れます。
var_dump()を整形する
var_dump()の中身が長いときはこのように書けば、中身が整理されて見やすくなります。
var_dump($test);
echo'</pre>';
関数に仮の変数を渡して、一部だけ検証
いろんなところから関数が呼ばれていて、このタイミングのときだけどんな変数が処理されているかを調べたいときにこのようにします。
$test = cost($value);
function cost($value){
処理
$ret = $value * ...複雑な処理;
return $ret;
}
変更後
$test = cost($value, true);
function cost($value , $kensyo = false){
処理処理
$ret = $value * ...複雑な処理;
if($kensyo) var_dump($value);
return $ret;
}
第二引数にtrueを渡して、それ以外はデフォルトでfalseになるようにすれば、その処理で関数を通ったときだけ検証ができます。
エラーが出たときは
エラーが出たときはこのようにして対処しています。
調べる ググる
先人の方々がエラーに陥った時の対処方法を書いていくれているものです。
聞く前に調べてそれでもだめなら聞くというスタンスを取ったほうが印象が良いです。
原因の切り分けを行う
エラーがなぜ起きているかという原因の切り分けを行うというのがエラー原因を探る手がかりになります。
エラーの起こし方を変えてみたり、「この時はいけるけど、このときはいけない」というのを蓄積してその共通点を見ていくことで原因が解明していくことがあります。
コードにデバッグ用の処理を加えて調査する
上記でお伝えしたデバッグ用のコードを書いてみて、変数の中身を探ったり、どこまで処理が進んでいるか見ることが有用な方法になります。
まとめ
デバッグやエラーを調査する方法を初心者向けにご紹介しました。
PHPerになる方の勉強の一つとなればと思います。