정의 및 사용법
콜백은 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