>백엔드 개발 >PHP 튜토리얼 >PHP에서 콜백을 구현하는 방법은 무엇입니까?

PHP에서 콜백을 구현하는 방법은 무엇입니까?

青灯夜游
青灯夜游원래의
2019-03-13 15:43:415599검색

PHP에서 콜백은 호출 가능 유형의 함수 객체/참조입니다. 콜백(또는 호출 가능) 변수는 함수, 객체 메소드 및 정적 클래스 메소드로 사용될 수 있습니다. 콜백을 구현하는 방법에는 여러 가지가 있습니다. 이 기사에서는 그 중 일부를 소개하겠습니다. [동영상 튜토리얼 추천: PHP 튜토리얼]

PHP에서 콜백을 구현하는 방법은 무엇입니까?

1. 표준 콜백#🎜 🎜#

예: call_user_func() 함수를 사용하여 함수를 호출하고 포함된 매개변수는 함수 이름입니다.

<?php 
header("content-type:text/html;charset=utf-8");
function text1(){
    echo &#39;这个是text1<br>&#39;;
};
call_user_func(&#39;text1&#39;);
  
?>

출력:

这个是text1

설명: call_user_func() 함수가 호출된 후 call_user_func() 함수가 실행 중에 text1() 함수를 다시 호출합니다.

2. 정적 클래스 메서드 콜백

예: call_user_func() 함수를 사용하여 정적 클래스 메서드를 호출합니다. 여기서 매개변수는 포함된 클래스 이름과 호출할 메서드 배열입니다.

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 用于输出字符串的函数
    static function someFunction() { 
        echo "父级函数输出 <br>"; 
    } 
} 
  
class Article extends Demo { 
  
    // 用于输出字符串的函数 
    static function someFunction() { 
        echo "子级函数输出 <br>"; 
    }    
} 
  
// 静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;someFunction&#39;)); 
  
call_user_func(&#39;Article::someFunction&#39;); 
  
// 相对静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;parent::someFunction&#39;)); 
  
?>

출력:

子级函数输出
子级函数输出
父级函数输出

3. 객체 메서드 콜백

예: call_user_func() 함수를 사용하여 인수가 개체 변수와 호출할 메서드의 문자열 이름을 포함하는 배열인 개체 메서드를 호출합니다.

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 输出字符串的函数
    static function someFunction() { 
        echo "PHP中文网 <br>"; 
    } 
  
    // 输出字符串的函数
    public function __invoke() { 
        echo "__invoke()函数<br>"; 
    } 
} 
  
// 类对象
$obj = new Demo(); 
  
// 对象方法调用
call_user_func(array($obj, &#39;someFunction&#39;)); 
  
call_user_func($obj); 
  
?>

출력:


PHP中文网 
__invoke()函数

4, 클로저 콜백

예: array_map( ) 사용 함수는 표준 호출을 하거나 클로저 함수가 제공한 유효한 매개변수 배열에 클로저 함수를 매핑하여 클로저 함수를 호출 가능하게 만듭니다. 여기서 매개변수는 클로저 함수의 배열과 유효한 매개변수입니다.

<?php 
header("content-type:text/html;charset=utf-8");
// 用于输出<br>
$print_function = function($string) { 
    echo $string."<br>"; 
}; 
  
// 字符串数组 
$string_array = array("PHP", "Python", "MySQL"); 
  
// 可调用闭包
array_map($print_function, $string_array);
?>

출력:

PHP
Python
MySQL

위는 이 기사의 전체 내용입니다. 모든 사람의 학습에 도움이 되기를 바랍니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 PHP에서 콜백을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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