PHPは一般的に統合開発環境のようなリッチな環境が存在しない。
共通関数の中でエラーが発生しようものならば、かなり悲惨な状況となるのだけど、それを救ういい方法があるのでここに明記しておく。それはバックトレースの出力である。
共通関数の中でエラーが発生しようものならば、かなり悲惨な状況となるのだけど、それを救ういい方法があるのでここに明記しておく。それはバックトレースの出力である。
バックトレースの出力はマニュアルの関数リファレンスの『エラー処理およびログ記録関数』に記載されているのだが、エラーを発生させがちな開発言語を学び始めた人が、あれだけ膨大な関数リファレンスを見るというのはまれな事である。
入門本に記載されているのかどうか知らないのだけど、実際、私が持っている本にはこの関数は説明されていなかった。従って、この手法との出会いまでに幾分時間が必要だったのだ。
入門本でデバッグ方法を取り上げている物は少ないのだけど、実際には終始必要になるのはデバッグなのではないかと思うわけで、そのために利用できる手法は説明すべきだと思う。
さてバックトレースを行なう手法は2つある。
A: var_dump(debug_backtrace());
B: debug_print_backtrace();
Aの方法がマジお勧め。というか、配列の内容はprint_rで出力してデバッグしていたのだけど、var_dumpを使うほうが遥かにデバッグとしては正しいと思う。せめてこれくらいは初心者に教えてやれよと。
Aの方法は冗長だけど必要な全てが得られる方法。関数の呼び出し元、引数等、それがきちんと分かるすばらしいものである。
Bの方法は関数コールのみを出力するような感じで、引数については表示されない。だけど、原則1関数1行で出力されるので全体を素早く見通せる利点がある。
入門本に記載されているのかどうか知らないのだけど、実際、私が持っている本にはこの関数は説明されていなかった。従って、この手法との出会いまでに幾分時間が必要だったのだ。
入門本でデバッグ方法を取り上げている物は少ないのだけど、実際には終始必要になるのはデバッグなのではないかと思うわけで、そのために利用できる手法は説明すべきだと思う。
さてバックトレースを行なう手法は2つある。
A: var_dump(debug_backtrace());
B: debug_print_backtrace();
Aの方法がマジお勧め。というか、配列の内容はprint_rで出力してデバッグしていたのだけど、var_dumpを使うほうが遥かにデバッグとしては正しいと思う。せめてこれくらいは初心者に教えてやれよと。
Aの方法は冗長だけど必要な全てが得られる方法。関数の呼び出し元、引数等、それがきちんと分かるすばらしいものである。
Bの方法は関数コールのみを出力するような感じで、引数については表示されない。だけど、原則1関数1行で出力されるので全体を素早く見通せる利点がある。


