PHP_php 기술의 클로저(익명 함수)에 대한 간략한 분석

WBOY
풀어 주다: 2016-05-16 20:23:59
원래의
1039명이 탐색했습니다.

클로저는 익명 함수라고도 하며 PHP5.3에서 도입되었습니다.

사용방법

배열 요소의 값을 조정해야 합니다

코드 복사 코드는 다음과 같습니다.

$data = range(0, 100);//각 요소의 값에 .html 접미사
를 추가하고 싶습니다. $접미사 = '.html';

makeSuffix($str, $suffix) 함수
{
$str을 반환합니다.
}

$new_data = array_map(함수($item) 사용($suffix) {
makeSuffix($item, $suffix)를 반환합니다.
}, $data);

요소 구조를 변경해야 합니다

코드 복사 코드는 다음과 같습니다.

$arr = [
[
         'id'=>'',
         '이름'=>'',
         'create_time'=>'',
],
];

$new_data = array_map(함수($item) {
반환 ['id'=>$item['id'],'name'=>$item['name']];
}, $arr);
//foreach를 사용하는 경우 루프에 제로타임 변수를 만들고 이 변수에 필요한 값을 할당해야 합니다.

실행 효율성

코드 복사 코드는 다음과 같습니다.

$data = 범위(0, 50000)
//1
foreach($data를 &$value로) {
$value = makeSuffix($value, $suffix);
}

//2
foreach($data를 $value로) {
$new[] = makeSuffix($value, $suffix);
}

//3
array_map(함수($item) 사용($suffix) {
makeSuffix($item, $suffix)를 반환합니다.
}, $data);


5W 실행 후 결과 1~3을 보면 대부분의 경우 실행 시간이 늘어납니다. 실행 결과 시간 중 하나는 다음과 같습니다
코드 복사 코드는 다음과 같습니다.

1:0.0260009765625
2:0.038002014160156
3:0.047003030776978

결론

클로저 코드는 비교적 우아하지만 로직이 혼동되기 쉽고 다른 방법에 비해 실행 효율이 상대적으로 낮으므로 주의해서 사용해야 합니다. 코드 구조가 지저분하고 캡슐화가 필요할 때 사용하는 것이 좋습니다.

이 기사가 PHP를 사용해 본 적이 없거나 PHP 클로저에 대해 궁금한 점이 있는 학생에게 도움이 되기를 바랍니다.

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