is_callable()의 역할
저는 최근에 is_callable() 메소드를 접하게 되었습니다. 예전에는 관련 로직 처리를 수행하기 위해 method_exissts() 메소드를 사용하게 되었습니다. 오늘 is_callable() 메소드를 접하면서 두 가지가 매우 유사하다는 것을 알게 되었습니다.
is_callable() 메서드의 구문 구조는 다음과 같습니다.
bool is_callable ( callable $name [, bool $syntax_only = false [, string &$callable_name ]] )
Function 변수의 내용을 함수로 호출할 수 있는지 확인하는 것입니다. 매개변수 1 이름은 확인해야 할 콜백 함수의 이름입니다. 객체 메소드인 경우 매개변수 1로 배열이 필요합니다. 이때 매개변수는 다음과 같은 구조여야 합니다.
array ( 클래스 인스턴스, 메소드 이름)
매개변수 2 Syntax_only는 부울 값입니다. true로 설정되면 이 함수는 name이 함수 또는 메소드의 구문인지만 확인하고 함수가 실제로 존재하는지 여부는 감지하지 않습니다.
매개변수 3 callable_name은 "호출 가능 이름"을 받는 데 사용됩니다. 일반 함수는 함수 이름을 반환하고 클래스의 메서드는 someClass::someMethod 형식의 문자열을 반환합니다.
is_callable()과 method_exists()의 차이점
method_exists() 함수의 매개변수는 객체(또는 클래스 이름)와 메서드 이름입니다. 객체의 클래스는 true를 반환합니다.
둘의 차이점은 다음과 같습니다.
php5에서는 메소드가 존재한다고 해서 호출할 수 있는 것은 아닙니다. 비공개, 보호 및 공개 유형의 메소드의 경우 method_exits()는 true를 반환하지만 is_callable()은 존재 여부와 액세스 가능 여부를 확인하고 비공개, 보호 유형인 경우 false를 반환합니다.
위 내용은 PHP Note 013의 is_callable()과 method_exists() 함수의 차이점입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!