람다 함수를 사용하여 외부 변수에 액세스
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!