> 백엔드 개발 > PHP 문제 > PHP 콜백 함수를 작성하는 방법

PHP 콜백 함수를 작성하는 방법

silencement
풀어 주다: 2023-02-24 18:08:01
원래의
3884명이 탐색했습니다.

PHP 콜백 함수를 작성하는 방법

일반 함수의 정의와 호출은 js와 유사합니다. 이 정의는 반환값이 있어도 필요하지 않습니다. 선언할 때 추가하세요.

이후 PHP 버전에서는 함수가 정의되기 전에 호출할 수 있다는 매우 유용한 기능이 추가되었습니다.

echo add(1,2);
echo "</br>";
function add($a,$b){
    return $a+$b;
}
function sub($a,$b){
    return $a-$b;
}
echo add(23,12);
echo "</br>";
echo sub(23,22);
echo "</br>";
로그인 후 복사

다음은 매우 유용한 함수인데, 이름에서 알 수 있듯이 변수로 사용되는 함수입니다.

장점은 동일한 변수로 서로 다른 함수를 호출할 수 있다는 것인데, 이는 함수의 다형성 호출과 매우 유사합니다.

$var="add";
echo $var(4,2);
echo "</br>";
$var="sub";
echo $var(4,2);
echo "</br>";
로그인 후 복사

콜백 함수는 간단한 매개변수 전달로 문제를 해결할 수 없을 때 목적을 달성하기 위해 프로세스를 함수에 전달하는 것입니다.

함수를 호출할 때 함수를 매개변수로 전달하는 것이 함수 콜백입니다.

$arr=array(2,3,5,4,1,6,7,9,8);
var_dump($arr);
echo "</br>";
로그인 후 복사
//这里是自定义回调函数,返回-1是指将两个元素交换,0和1是不发生改变。
function myrule($a,$b){
    if ($a>$b){
        return 1;
    }
    elseif ($a<$b){
        return -1;
    }
    else{
        return 0;
    }
}
//usort就是系统函数,但是他的第二个参数是回调函数,这个函数参数就是排序规则
usort($arr,"myrule");
var_dump($arr);
echo "</br>";
로그인 후 복사

자신만의 콜백 함수를 작성하고 변수 함수와 콜백을 사용하여 동시에 여러 조건을 충족해야 하는 경우 && 관계를 지정하면 됩니다. .

사용되는 변수 함수는 시스템에서 call_user_func_array()라는 함수를 사용하여 호출할 수 있습니다. 여기에는 콜백 함수 이름과 매개 변수 배열의 두 가지 매개 변수가 있습니다.

call_user_func_array(" 데모", array(1,3)); 기본 매개변수가 있는 경우에도 배열의 매개변수 수가 원래 함수의 수보다 적을 수 있다는 장점이 있습니다.

//rule1除去数组中是三的倍数的数
function rule1($a){
    if ($a%3==0){
        return true;
    }else{
        return false;
    }
}
//rule2是除去数组中的回文数(从左边读与从右边读是一样的)
function rule2($a){
    if ($a==strrev($a)){
        return true;
    }else{
        return false;
    }
}
function demo($n,$var){
    for ($i=0;$i<$n;$i++){
        if (call_user_func_array($var,array(23)))
        //if ($var($i))
        {
            continue;
        }else{
            echo $i."<br>";
        }
    }
}
$var="rule1";
demo(100,$var);
echo "</br>";
echo "<hr>";
$var="rule2";
demo(200,$var);
echo "</br>";
로그인 후 복사

객체에서 메서드를 호출할 때는 익명 객체를 전달한 다음 함수 이름을 지정해야 합니다.

그리고 클래스에서 정적 메서드를 호출할 때는 , 클래스 이름만 지정하면 됩니다.

위의 두 가지 경우에는 변수 함수를 완전히 사용할 수 없습니다. 시스템 콜백 call_user_func_array()만 사용할 수 있습니다. 이는

class A{
    function one(){
    }
    static function two(){
    }}demo(200,array(new A,"one"));demo(200,array("A","two"));
로그인 후 복사
를 호출하지 않고 매개 변수를 전달하는 변수 함수일 뿐입니다.

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

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