Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 콜백/호출 가능

<시간/>

정의 및 사용법

콜백은 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