PHPのデバッグといえばXdebugが便利で有名なのですが、Xdebugを使うほどではない簡易的な方法がいくつかあるので紹介します。
変数にどんな値が入っているかを調べます。
シンプルな方法
シンプルなコードは以下の通りです。
変数$hogehogeの中身を調べます。
1 |
echo $hogehoge;exit; |
PHPコードの中に$hogehogeの後にこれを書きます。
WordPressのようにPHPファイルがテンプレートファイルとして使われているなら、echoすればブラウザに表示されます。
最後にexitを書いているので、このコードが実行されたらPHPファイルの読み込みは強制終了します。
出力結果はただ$hogehogeの内容が表示されるだけです。
PHPの関数で変数の中身をみるなら、やっぱりvar_dump()が有名です。
var_dump()なら以下のようなコードを書きます。
1 |
var_dump($hogehoge);exit; |
var_dump()にはechoは必要ありません。
しかし、var_dump()は変数の型も書かれるので、出力結果が少し見づらくなる場合があります。
せっかくデバッグするなら以下のようなコードだと少し情報がリッチになります。
1 |
echo '<pre>'.__LINE__.':'.__FILE__.'<br>'.print_r($hogehoge, true)."</pre>";exit; |
このコードが書かれている行とファイルパスも一緒に表示してくれます。
ログファイルに書き出す方法
ブラウザに表示すると、ページを更新する度に前の出力結果が消えます。
デバッグの履歴を残しておきたい場合はログファイルに書き込みましょう。
以下のコードでログファイルに書き込むことができます。
1 |
file_put_contents( 'ファイルパス', '[' . date('Y-m-d H:i:s') . '] ' . __FILE__ . ':' . __LINE__ . PHP_EOL . print_r($hogehoge, true) . PHP_EOL, FILE_APPEND ); |
file_put_contentsを使うとfopen()とfwrite()と fclose()を連続で実行します。
第一引数にはログファイルのファイルパスを指定しましょう。
あらかじめログファイルを作成していなくても、自動で作成されます。
このコードを実行する度に実行結果が順に追加されていきます。
ログファイルらしく、コードを実行した時刻とファイルパスと行番号が書かれて、その下に変数の中身が書き込まれます。
まとめ
現在ではPHPのデバッグはWordPressやエディターのプラグインを使えばわかりやすく出力してくれます。
PHPの標準の関数だけでなら、このやり方で十分です。