>백엔드 개발 >PHP 튜토리얼 >Note 013 PHP에서 is_callable()과 method_exists() 함수의 차이점

Note 013 PHP에서 is_callable()과 method_exists() 함수의 차이점

黄舟
黄舟원래의
2016-12-26 10:03:152016검색

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)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.