>  기사  >  백엔드 개발  >  PHP의 익명 함수 내에서 외부 변수에 어떻게 액세스하고 수정할 수 있나요?

PHP의 익명 함수 내에서 외부 변수에 어떻게 액세스하고 수정할 수 있나요?

DDD
DDD원래의
2024-11-14 17:56:02781검색

How can I access and modify external variables within an anonymous function in PHP?

익명 함수를 매개변수로 사용하여 외부 변수에 액세스

이 시나리오에는 데이터베이스 행을 편리하게 처리하는 편리한 함수가 포함됩니다. 그러나 결과 집합의 모든 제목을 단일 변수로 연결해야 하는 특정 요구 사항이 발생합니다. 이는 전역 키워드를 사용하는 덜 우아한 접근 방식에 의존하지 않고 이를 수행하는 방법에 대한 의문을 제기합니다.

한 가지 해결책은 클로저 변수를 사용하는 것입니다. 특히, use 키워드를 사용하면 클로저가 상위 범위에서 변수를 상속받을 수 있습니다. 이는 모든 함수에 걸쳐 지속되는 전역 변수와 다릅니다.

이 솔루션을 구현하려면 코드를 다음과 같이 수정할 수 있습니다.

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

사용(&$result)을 추가하여 익명 함수를 사용하면 함수 내에서 결과 변수를 참조하고 수정할 수 있습니다. use 키워드는 결과 변수에 대한 참조를 클로저에 효과적으로 전달합니다.

이 접근 방식에는 초기 바인딩이 포함된다는 점에 유의하는 것이 중요합니다. 즉, 클로저는 함수 선언 시점에서 변수 값을 사용합니다. 함수 호출 시점이 아닙니다(후기 바인딩). 이는 이러한 목적으로 클로저를 활용할 때 명심해야 할 사항입니다.

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

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