デバッグに役立つかも?traceを表示する関数
例外クラスって便利だねー
ソース
<?php function dump_trace() { $e = new Exception(); $trace = $e->getTrace(); array_shift( $trace); foreach ( $trace as $i => $item) { echo "#{$i} {$item['file']}({$item['line']}): "; if( isset( $item['class'])) echo $item['class']; if( isset( $item['type'])) echo $item['type']; echo "{$item['function']}("; foreach ( $item['args'] as $k => $arg) { if( $k > 0 ) echo ','; echo var_export( $arg, true); } echo ")\n"; } }
使い方サンプル
<?php // c:\some_dir\test.php somefunc( 'arg'); function somefunc( $arg) { echo "in somefunc\n"; dump_trace(); echo "\n"; somefunc2( 'arg1', 'arg2'); } function somefunc2( $arg, $arg2) { echo "in somefunc2\n"; dump_trace(); }
上記コードの結果
in somefunc #0 C:\some_dir\test.php(4): somefunc('arg') in somefunc2 #0 C:\some_dir\test.php(11): somefunc2('arg1','arg2') #1 C:\some_dir\test.php(4): somefunc('arg')