If we want to know who called a certain method? debug_print_backtrace can solve it
debug_print_backtrace() can print out the calling process of a page, and it is clear where it comes from.
But this is a proprietary function of PHP5, fortunately There is already an implementation in pear,
http://pear.php.net/package/PHP_Compat
Test code
Copy code The code is as follows:
class a{
function say($msg) {
echo "msg:".$msg;
echo "
";debug_print_backtrace();
}
}
class b {
function say($msg) {
$a = new a();
$a ->say($msg);
}
}
class c {
function __construct($msg) {
$b = new b();
$b->say($msg);
}
}
$c = new c("test");
Output result
Copy code The code is as follows:
msg:test
#0 a->say(test) called at [/var/www/test/test0723 .php:12]
#1 b->say(test) called at [/var/www/test/test0723.php:19]
#2 c->__construct(test) called at [/var/www /test/test0723.php:23]