익명 함수 내에서 전역 변수에 액세스
PHP에서 익명 함수는 일반적으로 자체 격리된 범위 내에서 작동하므로 정의된 변수에 액세스하는 기능이 제한됩니다. 다른 곳. 이는 전역 변수로 작업할 때 장애물이 될 수 있습니다.
도전 과제:
제공된 예를 고려하세요.
$variable = "nothing"; functionName($someArgument, function() { $variable = "something"; }); echo $variable; //output: "nothing"
이 시나리오에서는 익명 함수는 범위 외부에서 $variable 값을 수정할 수 없으므로 출력은 "아무것도 없음"으로 남게 됩니다.
해결책: 클로저
이 문제를 극복하려면 클로저를 사용하세요. 취업할 수 있습니다. 클로저는 범위가 종료된 후에도 해당 범위의 변수에 대한 액세스를 유지하는 함수입니다.
익명 함수 내에서 전역 범위 변수를 수정하려면 다음 구문을 사용하세요.
functionName($someArgument, function() use(&$variable) { $variable = "something"; });
익명 함수 내에서 "use(&$variable)"를 사용하면 전역 $variable에 대한 참조가 함수에 전달됩니다. "&"는 변수에 대한 참조를 전달하여 함수 내에서 값을 수정할 수 있음을 나타냅니다.
이제 익명 함수가 실행되면 $variable의 값을 성공적으로 변경할 수 있습니다. 수정된 값은 함수 범위 밖에서도 유지됩니다.
위 내용은 익명 함수가 PHP에서 전역 변수를 어떻게 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!