特定のメソッドを誰が呼び出したかを知りたい場合は、debug_print_backtrace で解決できます
debug_print_backtrace() は、ページの呼び出しプロセスを出力でき、それがどこから来たのかは明らかです
しかし、幸いなことに、これは PHP5 独自の関数です。 pear にはすでに実装があります。
http://pear.php.net/package/PHP_Compat
テストコード
コードをコピーします。 コードは次のとおりです:
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(); ;
}
}
$c = new c("test");
出力結果
コードをコピー コードは次のとおりです:
msg:test
#0 a->say(test) は [/ var/www/test/test0723 .php:12]
#1 b->say(test) は [/var/www/test/test0723.php:19] で呼び出されます
#2 c->__construct(test) [/var/www /test/test0723.php:23] で呼び出されます