PHP에서는 call_user_function()이나 usort()와 같은 일부 함수가 사용자 정의 함수를 매개변수로 받아들입니다. 콜백 함수는 단순한 함수일 뿐만 아니라 정적 클래스의 메서드를 포함하여 개체의 메서드일 수도 있습니다.
PHP 함수는 함수 이름 문자열로 전달됩니다. array(), echo(),empty(), eval(),exit(), isset(), list(), print() 및 unset() 을 제외한 모든 내장 또는 사용자 정의 함수를 전달할 수 있습니다.
객체의 메소드는 배열 형태로 전달됩니다. 배열의 첨자 0은 객체 이름을 지정하고, 첨자 1은 메소드 이름을 지정합니다.
객체로 인스턴스화되지 않은 정적 클래스의 경우 해당 메서드를 전달하려면 배열 0 첨자로 지정된 객체 이름을 클래스 이름으로 바꿉니다.
콜백 함수 예시:
// 콜백 함수 예시
함수 my_callback_function() {
echo '안녕하세요!';
}
// 콜백 메소드 예시
클래스 MyClass {
함수 myCallbackMethod() {
echo 'Hello World!';
}
}
// 유형 1: 단순 콜백
call_user_func('my_callback_function');
// 유형 2: 정적 클래스 메서드 호출
call_user_func(array('MyClass', 'myCallbackMethod'));
// 유형 3: 객체 메서드 호출
$obj = 새로운 MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
?>
http://www.phpe.net/manual/언어.pseudo-types.php
http://cn.php.net/manual/en/언어.pseudo-types.php