누가 특정 메서드를 호출했는지 알고 싶다면 debug_print_backtrace로 해결할 수 있습니다
debug_print_backtrace()는 페이지의 호출 프로세스를 인쇄할 수 있으며 그 출처가 어디인지는 분명합니다.
PHP5 전용 함수는 다행히 pear에 구현되어 있습니다.
http://pear.php.net/package/PHP_Compat
테스트 코드
코드 복사 코드는 다음과 같습니다.
클래스 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")
출력 결과
코드 복사
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]에서 호출되었습니다.