
ob_get_level 함수는 PHP의 출력 버퍼의 현재 레벨을 반환합니다. 하지만 이 함수를 사용하여 현재 함수 호출 스택의 레벨을 얻어내는 방법은 다음과 같습니다.
1. PHP 5.3.0 이상 버전에서 사용할 수 있는 debug_backtrace 함수를 사용합니다. 이 함수는 현재 함수 호출 스택의 정보를 반환합니다.
#hostingforum.kr
php
function get_call_stack_level() {
$backtrace = debug_backtrace();
return count($backtrace) - 1;
}
function test_function() {
echo get_call_stack_level();
}
test_function();
2. PHP 5.3.0 미만 버전에서 사용할 수 있는 debug_backtrace 함수 대신에, register_globals가 enabled된 환경에서 $_SERVER['argv']를 사용할 수 있습니다.
#hostingforum.kr
php
function get_call_stack_level() {
return count($_SERVER['argv']) - 1;
}
function test_function() {
echo get_call_stack_level();
}
test_function();
3. register_globals가 disabled된 환경에서 $_SERVER['argv']를 사용할 수 없다면, $_SERVER['argc']를 사용할 수 있습니다.
#hostingforum.kr
php
function get_call_stack_level() {
return $_SERVER['argc'] - 1;
}
function test_function() {
echo get_call_stack_level();
}
test_function();
위의 예제를 통해, PHP에서 함수 호출 스택의 현재 레벨을 얻어내는 방법을 알 수 있습니다.
2025-04-08 23:52