- var_dump: documentation ( source)
- debug_backtrace: documentation ( source)
- set_error_handler: documentation ( source)
<?php
function call_debug_backtrace($errno, $errstr) {
static $call = 0; $call++;
echo "call {$call}: {$errstr}\n";
$bt = debug_backtrace();
$args = $bt[1]["args"];
foreach ($args as $k => $v) { $n = $k + 1;
echo "call {$call}: argument {$n} is '{$v}'\n";
$args[$k] = "altered {$call}:{$n}";
$bt2 = debug_backtrace();
if ($bt2[1]["args"][$k] === $args[$k]) {
echo "call {$call}: updated argument {$n} to '{$args[$k]}'\n";
}
}
}
set_error_handler("call_debug_backtrace");
function foo($a, stdClass $b, stdClass $c) {
var_dump($a);
var_dump($b);
var_dump($c);
}
foo(1, 2, 3);