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