정의 및 사용법
콜백은 PHP의 의사 유형입니다. PHP 5.4에서는 Callback과 유사한 Callable 유형 힌트가 도입되었습니다. 어떤 객체가 호출 가능한 것으로 식별되면 호출할 수 있는 함수로 사용할 수 있음을 의미합니다. 콜러블은 내장 또는 사용자 정의 함수 또는 클래스 내부의 메소드일 수 있습니다.
is_callable() 함수는 식별자가 호출 가능한지 여부를 확인하는 데 사용할 수 있습니다. PHP에는 함수의 이름을 매개변수로 받아들이는 call_user_function()이 있습니다.
다음 예제는 내장 함수가 호출 가능함을 보여줍니다.
예시
<?php
var_dump (is_callable("abs"));
?> 출력
이것은 다음 결과를 생성합니다 -
bool(true)
다음 예에서는 사용자 정의 함수가 호출 가능한지 테스트됩니다.
예시
<?php
function myfunction(){
echo "Hello World";
}
echo is_callable("myfunction") . "\n";
call_user_func("myfunction")
?> 출력
이것은 다음 결과를 생성합니다 -
1 Hello World
객체 메서드를 호출 가능한 것으로 전달하려면 객체 자체와 해당 메서드가 배열의 두 요소로 전달됩니다.
예시
<?php
class myclass{
function mymethod(){
echo "This is a callable" . "\n";
}
}
$obj=new myclass();
call_user_func(array($obj, "mymethod"));
//array passed in literal form
call_user_func([$obj, "mymethod"]);
?> 출력
이것은 다음 결과를 생성합니다 -
This is a callable This is a callable
클래스의 정적 메서드는 호출 가능으로 전달할 수도 있습니다. 객체 대신 클래스 이름이 배열 매개변수의 첫 번째 요소여야 합니다.
예시
<?php
class myclass{
static function mymethod(){
echo "This is a callable" . "\n";
}
}
$obj=new myclass();
call_user_func(array("myclass", "mymethod"));
//using scope resolution operator
call_user_func("myclass::mymethod");
?> 출력
이것은 다음 결과를 생성합니다 -
This is a callable This is a callable