익명 함수(익명 함수)는 클로저라고도 불리며 지정된 이름 없이 일시적으로 함수를 생성할 수 있게 해줍니다. 콜백 함수(콜백) 매개변수의 값으로 가장 자주 사용됩니다. 물론 다른 응용 프로그램도 있습니다.
익명 함수는 현재 Closure 클래스를 통해 구현됩니다.
클로저 함수는 변수의 값으로도 사용할 수 있습니다. PHP는 자동으로 이 expression을 내장 클래스 Closure의 object 인스턴스로 변환합니다. 클로저 객체를 변수에 할당하는 방법은 일반 변수 할당 구문과 동일하며 끝에 세미콜론도 추가됩니다.
클로저는 상위 범위에서 변수를 상속할 수 있습니다. 이러한 변수는 사용 언어 구성을 사용하여 전달되어야 합니다. PHP 7.1부터 superglobals, $this 또는 매개변수와 동일한 이름을 갖는 변수는 전달할 수 없습니다.
구체적인 형태는 다음과 같습니다.
$a = function($arg1, $arg2) use ($variable) { // 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量 }
구체적인 사용 예는 다음과 같습니다.
<?php $result = 0; $one = function() { var_dump($result); }; $two = function() use ($result) { var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明以及use使用的变量的值 $three = function() use (&$result) { var_dump($result); }; $result++; $one(); // outputs NULL: $result is not in scope $two(); // outputs int(0): $result was copied $three(); // outputs int(1) ?>
위 내용은 PHP 클로저 인스턴스 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!