PHP 콜백 함수 사용 방법(상세 예시)

WBOY
풀어 주다: 2023-04-10 17:38:01
원래의
4829명이 탐색했습니다.

이전 글에서는 "PHP 커스텀 함수 활용법(요약 공유)"을 가져왔습니다. 이번 글에서는 PHP의 커스텀 함수에 대해 자세히 소개했습니다. 기능에서. 모두에게 도움이 되기를 바랍니다!

PHP 콜백 함수 사용 방법(상세 예시)

PHP 콜백 함수

콜백 함수는 익명 함수 및 가변 함수와 협력하여 더 많은 기능을 달성할 수 있는 함수 구조입니다.

콜백 함수란 무엇인가요?

PHP의 콜백 함수는 실제로 함수를 호출할 때 표준 변수를 함수에 매개변수로 전달하는 대신 다른 함수가 호출된 함수에 매개변수로 전달되는 것을 의미합니다.

콜백 함수도 우리가 정의한 함수인데 직접 호출하는 것이 아니고 호출하려면 다른 함수가 필요한 것으로 이해하면 됩니다.

예제는 다음과 같습니다.

<?php
    function arithmetic($a, $b, $c) {
        return $a($b, $c);
    }
    function add($b,$c){
        return $b+$c;
    }
    $d = arithmetic(&#39;add&#39;, 5, 9);
    echo &#39;5 + 9 =&#39;.$d;
?>
로그인 후 복사

출력 결과:

PHP 콜백 함수 사용 방법(상세 예시)

또한 PHP는 call_user_func()call_user_func_array() 두 가지 함수를 제공합니다. 지원하는 콜백 함수를 처리합니다. call_user_func()call_user_func_array() 来对回调函数进行支持。

这两个函数的区别是: call_user_func_array() 是以数组的形式接收回调函数的参数,而 call_user_func() 则是以具体的参数来接收回调函数参数的。

  • call_user_func_array()

call_user_func_array 函数可以调用回调函数,然后使用一个数组来作为回调函数的参数。语法格式如下:

call_user_func_array ($callback ,$param_arr)
로그인 후 복사

在语法格式中,$callback 是被调用的回调函数,$param_arr 是一个索引数组,下面举个例子实际看一下:

<?php
    function arithmetic($f, $m, $n) {
        return call_user_func_array($f, array($m, $n));
    }
    function add($m,$n){
        return $m+$n;
    }
    $sum = arithmetic(&#39;add&#39;, 3, 4);
    echo &#39;3 + 4 =&#39;.$sum;
?>
로그인 후 복사

输出结果:

PHP 콜백 함수 사용 방법(상세 예시)

  • call_user_func()

call_user_func 函数会把第一个参数作为回调函数来调用,语法格式如下:

call_user_func ($callback [, $parameter, ... ])
로그인 후 복사

其中, $callback 是被调用的回调函数,其余参数是回调函数的参数,多个参数之间使用",

이 두 함수의 차이점은 call_user_func_array()는 콜백 함수의 매개변수를 배열 형태로 받는 반면, call_user_func()는 콜백 함수의 매개변수를 특정 매개변수 형태로 받습니다.

  • call_user_func_array() PHP 콜백 함수 사용 방법(상세 예시)

call_user_func_array 함수는 콜백 함수를 호출한 다음 배열을 콜백 함수 매개변수. 구문 형식은 다음과 같습니다.

<?php
    function arithmetic($f, $m, $n) {
        return call_user_func($f, $m, $n);
    }
    function add($m,$n){
        return $m+$n;
    }
    $sum = arithmetic(&#39;add&#39;, 250, 250);
    echo &#39;250 + 250 =&#39;.$sum;
?>
로그인 후 복사

구문 형식에서 $callback은 호출된 콜백 함수이고, $param_arr는 인덱스 배열입니다. 실제로 살펴보기 위해 예를 들어 보겠습니다.

<?php
function woziji($one,$two,$func){
       //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false
       if(!is_callable($func)){
               return false;
       }
       //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次
       //$func是一个变量函数,参见变量函数这一章
       echo $one + $two + $func($one,$two);
}
//我们定义几个函数试试
function plusx2( $foo , $bar){
       $result = ($foo+$bar)*2;
       return $result;
}
function jian( $x , $y ){
   $result = $x - $y;
   return $result;
}
//调用一下函数,woziji,向里面传入参数试试
echo woziji(20,10,&#39;plusx2&#39;);
//将plusx2改成jian试试结果
echo woziji(20,10,&#39;jian&#39;);
?>
로그인 후 복사
출력 결과:

PHP 콜백 함수 사용 방법(상세 예시)

  • call_user_func() 🎜
🎜call_user_func 함수는 첫 번째 매개변수를 콜백 함수로 호출합니다. 구문 형식은 다음과 같습니다. 🎜rrreee 🎜여기서 $callback은 호출된 콜백 함수이고 나머지 매개변수는 콜백 함수의 매개변수입니다. 여러 매개변수를 구분하려면 ","를 사용하세요. 실제 동작을 보기 위해 예를 들어보겠습니다: 🎜rrreee🎜 출력 결과: 🎜🎜🎜🎜🎜🎜 다음으로 변수 함수와 콜백 함수를 결합한 예를 공유하겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜 🎜 추천 학습 : 《🎜PHP 비디오 튜토리얼🎜》🎜

위 내용은 PHP 콜백 함수 사용 방법(상세 예시)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿