매일 PHP 개발 과정에서보고 오류 정보는 필연적으로 우리가 직면 한 것입니다. 그중에서도 "널을 호출 가능한 것으로 사용"하는 것은 기능 호출에서 종종 발생하는 일반적인 오류이며, 이는 초보자를 괴롭히는 것이 특히 쉽습니다. 이 기사는 오류 발생 이유를 근본적으로 분석하고 실용적인 솔루션을 제공합니다.
오류의 원인을 이해하기 전에 먼저 호출 가능한 것이 무엇인지 이해해야합니다. PHP에서 호출 가능한 것은 호출 할 수있는 구조, 이는 일련의 함수 이름, 객체 및 메소드 배열 또는 익명 함수 일 수있는 구조를 나타냅니다.
$callable1 = 'my_function';
$callable2 = array($object, 'my_method');
$callable3 = function() {
return "Hello World!";
};
null 값을 Call_user_func () 과 같은 함수로 전달하려고하면 PHP는 "Callable으로 NULL을 사용하는"치명적인 오류를 던집니다. 다음은 일반적인 예입니다.
$callable = null;
$result = call_user_func($callable);
Call_user_Func ()는 법적 호출 가능한 구조 만 수락 할 수 있고 NULL 값은 분명히이 요구 사항을 충족하지 않기 때문에이 코드의 실행 결과는 오류를보고합니다.
유효하지 않은 Callables를 통과하지 않도록 function_exists ()를 사용하여 호출하기 전에 함수가 존재하는지 확인할 수 있습니다.
if (function_exists('my_function')) {
$callable = 'my_function';
$result = call_user_func($callable);
}
이 방법은 함수 이름을 동적으로 호출 할 때 특히 실용적이며 정의되지 않은 기능으로 인한 오류를 효과적으로 방지 할 수 있습니다.
또 다른 유연한 방법은 기본 익명 함수를 사용하여 잠재적 널 값을 대체하여 Call_user_Func () 의 실행 보안을 보장하는 것입니다.
$callable = function() {
return "Hello World!";
};
$result = call_user_func($callable);
익명 함수를 사용하면 예상 함수 이름이나 메소드가 전달되지 않더라도 호출 오류가 없습니다.
"NULL을 호출 가능한 것으로 사용"하는 오류는 호출 가능한 유형에 대한 오해 나 과실에서 비롯됩니다. 보다 강력한 PHP 코드를 작성하려면 기능이 호출되기 전에 필요한 유형 판단을하거나 기본 기능을 대안으로 사용해야합니다. 이러한 기본 기술을 습득하면 런타임 오류를 피할뿐만 아니라 프로그램의 안정성과 유지 관리를 향상시키는 데 도움이됩니다.