1가지 기능. 가장 일반적으로 사용되는 것은 콜백 함수의 매개변수 값입니다. 익명 함수 정의: $closureFunc = function(){
....
};
예: 익명 함수를
에 할당하고 $closureFunc = function($str){
echo $str;
}; $closureFunc("hello world!");
변수를 통해 호출합니다. 출력: hello world!
2.1 일반 함수에 익명 함수를 넣고, 간단한 클로저를 구성하는 익명 함수를 반환할 수도 있습니다.
function closureFunc1(){ $func = function(){ echo "hello"; }; $func(); } closureFunc1(); //输出: hello2.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
익명 함수 반환 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, closure42.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!