
function_exists() 함수는 PHP에서 함수가 정의되어 있는지 확인하는 데 사용됩니다. 그러나, 이 함수는 함수가 호출되기 전에만 정확한 결과를 반환합니다.
이러한 이유는 PHP가 함수를 캐싱하는 방식 때문입니다. PHP는 함수를 호출하기 전에 캐시를 생성하여 함수의 결과를 저장합니다. 따라서, 함수가 호출되기 전에 function_exists() 함수를 호출하면 함수가 캐시되어 있지 않기 때문에 false가 반환됩니다.
하지만, 함수가 호출된 후 function_exists() 함수를 호출하면 함수가 캐시되어 있기 때문에 true가 반환됩니다.
따라서, function_exists() 함수를 사용하여 함수가 존재하는지 확인하는 방법은 다음과 같습니다.
1. 함수가 호출되기 전에 function_exists() 함수를 호출하지 말고, 함수를 호출한 후에 function_exists() 함수를 호출하세요.
2. 함수가 호출되기 전에 function_exists() 함수를 호출하고, 함수가 캐시되지 않도록 clearstatcache() 함수를 호출하세요.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
function add($a, $b) {
return $a + $b;
}
// 함수가 호출되기 전에 function_exists() 함수를 호출하지 말고, 함수를 호출한 후에 function_exists() 함수를 호출하세요.
add(3, 5);
echo function_exists('add') ? 'true' : 'false'; // true가 출력됩니다.
// 또는, 함수가 호출되기 전에 function_exists() 함수를 호출하고, 함수가 캐시되지 않도록 clearstatcache() 함수를 호출하세요.
echo function_exists('add') ? 'true' : 'false'; // true가 출력됩니다.
clearstatcache();
echo function_exists('add') ? 'true' : 'false'; // false가 출력됩니다.
이러한 방법으로 function_exists() 함수를 사용하여 함수가 존재하는지 확인할 수 있습니다.
2025-05-23 16:00