そのため、ループ/if ステートメントを使用してグローバル配列を変更する長いPHP コードがあります。
配列に変更が加えられるたびに配列の値を出力する直接的な方法はありますか? おそらくXDebugを使用していますか?
XDebug を使用して 1 行ずつデバッグするよりも、テキスト形式のログを使用したいと思います。
xdebug がないArrayAccess
と、配列の代わりにカスタム オブジェクトを定義し (実装)、ログオンしてoffsetSet
、モックアップをすばやく開始する必要がある場合があります。
class ArrayLogger implements ArrayAccess {
protected $array;
public function __construct(array $array){
$this->array = $array;
}
public function offsetGet($idx){
return $this->array[$idx];
}
public function offsetExists($offset) {
return isset($this->array[$offset]);
}
public function offsetUnset($offset) {
unset($this->array[$offset]);
}
public function offsetSet($offset,$value){
//do some logging here
debug_print_backtrace();
var_dump($this->array,$offset,$value)
//and actually, you may need to inspect $value for arrays. & convert them all to ArrayLogger's before setting this:
$this->array[$offset] = $value;
}
}
Xdebug は、すべての関数呼び出しをディスク上のファイルにダンプする関数トレースをサポートしています ( http://xdebug.org/docs/execution_traceを参照)。最近のバージョン以降、変数の変更も表示するように関数トレースを構成することもできます。xdebug.collect_assignment 設定で有効にできます ( http://xdebug.org/docs/execution_trace#collect_assignmentsを参照)。
console.log(...)
まあ、JS を出力することによってそれを行う 1 つの方法: Firebug をインストールすると、 andなどを使用できますconsole.debug(...)
(ドキュメントを参照してください)。