>  기사  >  백엔드 개발  >  PHP의 Lambda 함수는 어떻게 외부 변수에 액세스하고 수정할 수 있습니까?

PHP의 Lambda 함수는 어떻게 외부 변수에 액세스하고 수정할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-11 12:26:03838검색

How Can Lambda Functions in PHP Access and Modify External Variables?

람다 함수를 사용하여 외부 변수에 액세스

PHP에서는 람다 함수 내에서 외부 변수에 액세스할 수 있어 데이터 처리에 유연성이 제공됩니다. . 그러나 변수 캡처의 미묘한 차이를 이해하는 것이 중요합니다.

코드 조각을 고려하세요.

function fetch($query, $func) {
    $query = mysql_query($query);
    while($r = mysql_fetch_assoc($query)) {
        $func($r);
    }
}

fetch("SELECT title FROM tbl", function($r){
   //> $r['title'] contains the title
});

이 코드를 사용하면 제공된 함수를 사용하여 데이터베이스 행을 처리할 수 있습니다. 그러나 여러 행의 데이터를 집계해야 하는 경우 람다 함수 내에서 use 키워드를 사용할 수 있습니다.

$result = '';
fetch("SELECT title FROM tbl", function($r) use (&$result) {
   $result .= $r['title'];
});

echo $result;

use(&$result)를 추가하여 람다 함수에 외부 행을 사용하도록 지시합니다. $result 변수를 참조(&)로 전달합니다. 이를 통해 각 행의 값을 단일 변수로 연결할 수 있습니다.

람다 함수는 초기 바인딩을 사용하여 함수가 호출될 때가 아니라 함수가 정의될 ​​때 외부 변수의 값을 캡처한다는 점에 유의하는 것이 중요합니다. 이는 선언과 호출 사이에 외부 변수의 값이 변경될 때 예기치 않은 동작이 발생할 수 있습니다.

위 내용은 PHP의 Lambda 함수는 어떻게 외부 변수에 액세스하고 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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