PHP의 익명 함수 및 클로저

陈政宽~
풀어 주다: 2023-03-11 17:46:02
원래의
915명이 탐색했습니다.

1가지 기능. 가장 일반적으로 사용되는 것은 콜백 함수의 매개변수 값입니다. 익명 함수 정의:

$closureFunc = function(){

    ....

 };
로그인 후 복사
예: 익명 함수를

변수

에 할당하고

 $closureFunc = function($str){

   echo $str;

  };  $closureFunc("hello world!");
로그인 후 복사
변수를 통해 호출합니다. 출력: hello world!

2: 클로저

2.1 익명 함수를 넣습니다. function 일반 함수에서는 익명 함수도 반환할 수 있으며 이는 간단한 클로저를 구성합니다

function closureFunc1(){    $func = function(){        echo "hello";
    };    $func();
}
closureFunc1();//输出: hello
로그인 후 복사

2.2

익명 함수에서는 reference로컬 변수

function closureFunc2(){    $num = 1;    $func = function(){        echo $num;
    };    $func();
}
closureFunc2();//Notice: Undefined variable: num
로그인 후 복사

위 함수가 실행된 후 알림 오류가 보고됩니다. 이때, PHP 키워드 사용을 인용해야 합니다. 코드는 다음과 같습니다.

function closureFunc2(){    $num = 1;    $func = function() use($num){        echo $num;
    };    $func();
}
closureFunc2();//输出: 1
로그인 후 복사

2.3

익명 함수 반환

function closureFunc3(){    $num = 1;    $func = function() use($num){        echo $num;
    };    return $func;
}$func = closureFunc3(); //函数返回匿名函数$func(); //然后我们在用$func() 调用//输出: 1
로그인 후 복사
2.4 반환 시 어떻게 해야 합니까? 익명 함수에 매개변수를 전달하는 것은 어떻습니까? 사실 일반 함수에 매개변수를 전달하는 것과 똑같습니다

function closureFunc4(){    $num = 1;    $func = function($str) use($num){        echo $num;        echo "\n";        echo $str;
    };    return $func;
}$func = closureFunc4();$func("hello, closure4");//输出:
//1
//hello, closure4
로그인 후 복사

2.5

클로저를 사용하여 컨텍스트에서 참조하는 변수의 값을 변경하는 방법은 무엇인가요?

function closureFunc5(){    $num = 1;    $func = function() use($num) {        echo "\n";        $num++;        echo $num;
    };    echo "\n";    echo $num;    return $func;
}$func = closureFunc5();$func();$func();$func();//输出:
// 1
// 2
// 2
// 2
로그인 후 복사
위 입력 결과를 보면 목적이 달성되지 않았음이 분명합니다. 사실 & 참조 기호만 추가하면 됩니다

function closureFunc5(){    $num = 2;    $func = function() use(&$num) {        echo "\n";        $num++;        echo $num;
    };    echo "\n";    echo $num;    return $func;
}$func = closureFunc5();$func();$func();$func();//输出:
// 2
// 3
// 4
// 5
로그인 후 복사

2.6 익명 함수를 매개변수로 전달하세요

function callFunc($func){    $func("argv");
}

callFunc(function($str){    echo $str;
})//输出:
// argv
로그인 후 복사

위 내용은 PHP의 익명 함수 및 클로저의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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