変数をトレースしていますが、その変数の値を出力できますが、この値が変数に渡された場所(ページ)はわかりません。実際にこの値がどこから来ているかを印刷する良い方法はありますか?変数がどこから来ているかを確認する良い方法はありますか?
答えて
デバッグといくつかのgotchasの要約。
変数がPHPでどこに存在するかを判断するプログラム的な方法はありません。
良いデバッグ能力はあなたの友人です。投稿された他の回答をチェックしてください。ここにリキャップ:
debug_print_backtrace()
- どのファイルが含まれているかを知らせます。- サイトのトップレベルから
grep -rn 'variable_name' .
を使用して、存在する場所を確認してください。 var_dump($variable)
を一度に1つずつ追加すると、変数がさまざまな状態にあったことを追跡するのに役立ちます。
優れたデバッガを使用するとかなり助けになります。広く使用されているデバッガ拡張の1つがXdebugです。探すために
2つの潜在的な落とし穴があります:これらのeval()
とextract()
の両方が「魔法」の変数が前になかったことに存在する可能性があります。
もちろん、この問題を解決する最も良い方法は、グローバル変数を持たないことです。あるいは、できるだけ少なくしてください。それがMVCであろうとなかろうと、あなたのコードへの明確なフローを持つことができます。次に、コードが実行される順序と、変数がインスタンス化されたり渡されたりする順序を知ることができます。
良い出発点はdebug_print_backtrace()
の機能です。変数がどこに渡されたかはトレースされませんが、すべての関数と行番号付きのインクルード/必須ファイルが表示されます。
backtracingしているページで$ _POST/$ _ GET変数をチェックしないのはなぜですか? grep/searchユーティリティを使用して変数を見つけることができない場合は確かですか?あなたは、Linuxにしている場合は
私はgrepを使って$変数の元を検索しましたが、正しい場所かどうかはわかりません。別のことは、$変数が複数のページで渡されていることです。私はすべてのページを知りたいのです。 – user843812
おそらく、各ページにその変数の値を表示するprint文を追加します。これをプログラムを使用して実行したい場合は、[link] http://stackoverflow.com/questions/1538094/how-to-append-text-to-multiple-filesが役立ちます。もう1つの方法は、ページに名前を付けてファイルに変数値を追加するコードにピースを追加することです。ページを移動して各ページの変数値を確認した後、このファイルを確認することができます – questborn
、次のように入力します。
grep -rn "variable_name" .
は、変数が参照されていることを、ファイル(およびそれらのファイルの行番号)を表示します。
私はいつも私の前提もテストしたい。あなたは変数がページ上で変更される可能性があると思われるのであれば、次のように入力します。
var_dump($variable_name);
を値を表示するには。これを動かすことで、その変数をゼロにして、設定されている変数のソースを見つけることができます。
私は役立つことを願っています...
- 1. Firebase - アメリカのどの州から来ているのかを確認する方法はありますか?
- 2. UIViewControllerが表示されているかどうかを確認する良い方法はありますか?
- 3. イベントが右のCtrlキーから来るかどうかを確認する方法はありますか?
- 4. ベロシティ:変数が定義されているかどうかを確認する方法はありますか
- 5. 数字が正であることを確認する良い方法はありますか?
- 6. jinja2テンプレートで変数が変更されていることを確認する方法はありますか?
- 7. POSTパラメータを確認するより良い方法はありますか?
- 8. どのビューコントローラから別のビューコントローラに来ているか確認する方法
- 9. アプリケーションがデスクトップショートカットから起動しているかどうかを確認する方法はありますか?
- 10. バッチファイルから、プログラムがインストールされているかどうかを確認する方法はありますか?
- 11. ポインタがぶら下がっているかどうかを確認する方法はありますか?
- 12. これらの変数はどこにありますか.jspファイルから来ていますか?
- 13. gradleキャッシュが変更されているかどうかを確認する方法はありますか?
- 14. SMSがAndroidでいつ読み込まれるかを確認する良い方法はありますか?
- 15. #flutterの左/右ドラッグを確認する良い方法はありますか?
- 16. OpenIDでリターンユーザを確認する良い方法はありますか?
- 17. エラーを認識する良い方法はありますか?
- 18. 方法はどこから来ていますか?
- 19. ファイルが既に開いているかどうかを確認する方法はありますか?
- 20. ユーザーが購読しているかどうかを確認する正しい方法はありますか?
- 21. 何かが無かどうかを確認する良い方法は?
- 22. テーブルの列が空であるかどうかを確かめる良い方法はありますか?
- 23. 変数がJavascriptに存在するかどうかを確認する最も良い方法は?
- 24. UDIDがビルドに含まれているかどうかを確認する方法はありますか?
- 25. は、performSelector:withObject:afterDelay:が登録されているかどうかを確認する方法はありますか?
- 26. iPad:UIViewサブクラスがフォントをサポートしているかどうかを確認する方法はありますか?
- 27. ブラウザがHistory.Pushstateをサポートしているかどうかを確認する方法はありますか?
- 28. 私のアプリが20MBを超えているかどうかを確認する方法はありますか?
- 29. コンボボックスのドロップダウンリストが表示されているかどうかを確認する方法はありますか?
- 30. メンバーにモックが設定されているかどうかを確認する方法はありますか?
function_name($ variable)のように使用して、変数がどこから来ているかを確認することができます。私はdebug_print_backtrace()を試したところ、どのページがインクルードされているかを表示していましたが、ページが多すぎるため、すべてをチェックすることはできません。 – user843812