>  기사  >  백엔드 개발  >  PHP의 클로저 사용 예 및 실행 효율성 테스트 예에 대한 자세한 설명

PHP의 클로저 사용 예 및 실행 효율성 테스트 예에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-01 13:06:461333검색

이 글은 주로 PHP의 클로저(익명 함수)에 대한 간략한 분석을 소개합니다. 이 글은 사용 예와 실행 효율성 테스트를 제공합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

클로저는 PHP5.3에서 익명 함수라고도 합니다. .

Usage

정수그룹 요소의 값을 조정해야 합니다

코드는 다음과 같습니다.

$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

결론

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

위 내용은 PHP의 클로저 사용 예 및 실행 효율성 테스트 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.