외부 변수를 얻기 위한 PHP 클로저와 변수를 선언하기 위한 전역 키워드의 차이점에 대한 설명

jacklove
풀어 주다: 2023-04-02 21:06:01
원래의
2301명이 탐색했습니다.

클로저는 일반적으로 코드를 더 간결하고 읽기 쉽게 만들기 위해 콜백 함수와 함께 사용할 수 있는 일반적인 개념입니다. 이번 글에서는 주로 외부 변수를 얻기 위한 PHP 클로저와 변수를 선언하기 위한 전역 키워드의 차이점을 소개합니다. 필요한 친구들은

을 참고하세요. 최근에 Workerman을 배우면서 콜백 함수를 접하게 되었습니다. 작업자의 사용 방법이 다르기 때문에 이 두 가지 방법을 사용하여 외부 작업자 변수를 호출하는 경우가 많습니다. 여기서는 외부 변수를 가져오는 PHP 클로저와 변수를 선언하는 전역 키워드의 차이점을 정리하겠습니다.

Closure

Closure는 일반적인 개념으로 보통 콜백 함수와 비교해서 사용하는데, 코드를 더 간결하고 읽기 쉽게 만들 수 있습니다.

Closure를 사용하면 함수가 복사를 통해 상위 범위의 변수를 사용할 수 있습니다. 예:

$global = 'hello';
$bbb = function()use($global){
  echo $global."\n";
};
$bbb();
//输出 'hello'
로그인 후 복사

전역 키워드 선언 변수 #🎜 🎜#

global을 통해 변수를 선언하면 함수 본체가 함수 외부에서 변수를 호출할 수도 있습니다. 그러나 global은 사용 방식이 다릅니다. global 키워드는 외부 변수와 동일한 이름으로 참조를 생성하고 내부 변수를 수정합니다. 함수의 범위도 지정됩니다.

$global = 'hello';
$fun = function(){
  global $global;
  $global =' world';
  echo $global."\n";
};
$fun();
// 输出 'world'
로그인 후 복사

이것은 동일한 이름의 참조를 생성할 뿐이며 원래 외부 변수 $global의 범위는 변경하지 않습니다. 다른 함수에서 이것을 호출하려면 여전히 클로저를 선언하거나 사용해야 합니다. 🎜 #
$global = 'hello';
$fun = function(){
  global $global;
  $global =' world';
  echo 'a:'.$global."\n";
};
$ccc = function(){
  echo 'b:'.$global;
};
$fun()
$ccc()
/*
로그인 후 복사

외부 변수에 액세스하기 위한 클로저와 전역 키워드 선언 간의 차이점을 더 쉽게 비교할 수 있도록 코드를 약간 변경하세요.

a: world
Notice: Undefined variable: global in xxxxxxx on line xx
*/
로그인 후 복사

b와 d의 두 출력에서 ​​global이 외부 변수의 값을 변경하는 것을 볼 수 있지만 클로저는 방법은 그렇지 않습니다.

Output:

<?php
$global = &#39;hello&#39;;
$fun = function(){
  global $global;
  $global =&#39;world&#39;;
  echo &#39;a:&#39;.$global."\n";
};
$bbb = function()use($global){
  $global = &#39;china&#39;;
  echo &#39;c:&#39;.$global."\n";
};
$fun();
echo &#39;b:&#39;.$global."\n";
$bbb();
echo &#39;d:&#39;.$global;
로그인 후 복사

마지막으로 공식 문서에 좀 더 고전적인 익명 기능을 게시하겠습니다. 닫힘 패키지와 콜백 함수 간의 협력 예:

a: world
b: world
c:china
d: world
로그인 후 복사

Summary

#🎜 🎜#

위는 외부 변수를 얻기 위한 PHP 클로저와 변수를 선언하기 위한 전역 키워드의 차이점에 대한 편집자의 소개입니다. 궁금한 점이 있으면 도움이 되길 바랍니다. 나에게 메시지를 남겨주세요. 편집자가 제 시간에 모든 사람에게 답변을 드릴 것입니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

당신이 관심을 가질 만한 기사:

공개 계정 기사 수집의 효율성을 높이기 위해 anyproxy를 사용하는 방법에 대한 자세한 설명# 🎜🎜## 🎜🎜#

PHP를 사용하여 WeChat 공개 계정 기사 페이지를 수집하는 방법에 대한 설명

#🎜🎜 #WeChat 공개 계정 수집 방법 기록 메시지 페이지에 대한 자세한 설명

위 내용은 외부 변수를 얻기 위한 PHP 클로저와 변수를 선언하기 위한 전역 키워드의 차이점에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿