익명 함수(익명 함수)는 클로저라고도 불리며 지정된 이름 없이 일시적으로 함수를 생성할 수 있게 해줍니다. 콜백 함수(콜백) 매개변수의 값으로 가장 자주 사용됩니다. 물론 다른 응용 프로그램도 있습니다.
익명 함수는 현재 Closure 클래스를 통해 구현됩니다.
클로저 함수는 변수의 값으로도 사용할 수 있습니다. PHP는 자동으로 이 expression을 내장 클래스 Closure의 객체 인스턴스로 변환합니다. 클로저 객체를 변수에 할당하는 방법은 일반적인 변수 할당 구문과 동일하며 끝에 세미콜론을 추가해야 합니다.
이 글에서는 주로 PHP의 클로저(익명 함수)에 대한 간략한 분석을 소개합니다. . 이 글은 사용 예시와 실행 효율성 테스트를 제공합니다.
사용 방법
을 참조하세요. integergroup 요소
에서 값을 조정해야 합니다.
$data = range(0, 100);//想要每个元素的值都加上.html的后缀 $suffix = '.html'; function makeSuffix($str, $suffix) { return $str . $suffix; } $new_data = array_map(function($item) use ($suffix) { return makeSuffix($item, $suffix); }, $data);
요소를 변경해야 합니다. 구조
코드는 다음과 같습니다.
$arr = [ [ 'id'=>'', 'name'=>'', 'create_time'=>'', ], ]; $new_data = array_map(function($item) { return ['id'=>$item['id'],'name'=>$item['name']]; }, $arr);
//foreach를 사용하는 경우 루프에 제로타임 변수도 만들어야 합니다.
실행 효율성
코드는 다음과 같습니다.
$data = range(0, 50000) //1 foreach ($data as &$value) { $value = makeSuffix($value, $suffix); } //2 foreach ($data as $value) { $new[] = makeSuffix($value, $suffix); } //3 array_map(function($item) use ($suffix) { return makeSuffix($item, $suffix); }, $data);
5W 실행 후 결과 1~3에서 대부분의 경우 실행 시간이 순차적으로 증가합니다. 실행 결과 시간은 다음과 같습니다
코드는 다음과 같습니다.
1:0.0260009765625 2:0.038002014160156 3:0.047003030776978
Conclusion
Closed 패키지의 코드는 비교적 우아하지만 로직이 혼동되기 쉽고 실행 효율성이 상대적으로 낮습니다. 다른 방법으로 사용되므로 주의해서 사용해야 합니다. 코드 구조가 지저분하고 캡슐화가 필요할 때 사용하는 것이 좋습니다.
위 내용은 PHP의 익명 함수에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!