PHP의 전역 변수에 대해 이야기해 보세요.

little bottle
풀어 주다: 2023-04-06 08:56:02
앞으로
2999명이 탐색했습니다.

우리 모두 알고 있듯이, PHP 함수에서 전역 변수를 사용하려면 슈퍼 전역 변수$GLOBALS,另一种是在函数中使用global 키워드 선언을 사용하는 것이 좋습니다. 슈퍼 전역 변수 $GLOBALS를 사용하는 방법은 누구나 알고 있습니다. 변수를 선언하는 전역 방법.

다음 예를 살펴보겠습니다.

$a = 1;
$b = 2;
function test() {
    global $a, $b;
}
test();
로그인 후 복사

test() 함수를 실행할 때 메모리에 있는 변수의 상태는 어떻습니까? 아래 그림과 같이

test 함수를 선언합니다. test() 함수가 호출되면 global은 함수에서 두 개의 로컬 변수 $a, $b를 선언하고 전역 변수 $a 및 $b 이때 임시 변수 $a와 $b는 각각 전역 변수 $a와 $b에 대한 참조와 동일합니다. 따라서 함수에서 지역변수 $a, $b의 값을 수정하는 것은 전역변수의 값을 수정하는 것과 같습니다.

$a = 1;
$b = 2;
function test() {
    global $a, $b;
    $a = 11;
    $b = 12;
    unset($a);
    unset($b);
}
test();
echo $a;
echo &#39;<br>&#39;;
echo $b;
로그인 후 복사

브라우저에서 출력:

11
22
로그인 후 복사
로그인 후 복사

Unset()은 위 코드에서도 사용됩니다. 전역 변수 $a 및 $b의 값은 echo 출력을 통해 출력될 수 있습니다. test() 함수에 전달된 $a 및 $b는 지역 변수일 뿐이며 unset()은 지역 변수와 전역 변수의 참조 연결을 끊습니다.

또 다른 상황을 살펴보겠습니다. 테스트 함수에서 선언한 변수가 전역 변수에 없으면 어떻게 될까요?

먼저 결론을 말씀드리겠습니다. 함수에서 global 키워드를 사용하여 선언한 변수가 전역 범위에 같은 이름의 변수가 없으면 먼저 같은 이름의 전역 변수가 생성되고, 그러면 함수에 지역 변수가 생성되고 전역 변수의 참조는 지역 변수를 가리킵니다.

function test() {
    global $a, $b;
    $a = 11;
    $b = 22;
    unset($a);
    unset($b);
}
echo $a;
echo &#39;<br>&#39;;
echo $b;
로그인 후 복사

브라우저를 통한 출력:

11
22
로그인 후 복사
로그인 후 복사

위 코드에서는 테스트 함수에서 변수 $a, $b를 선언하기 위해 global을 사용했습니다. $a와 $b는 전역 범위에서 선언되지 않았지만 전역은 여전히 ​​선언됩니다. 먼저 전역 변수 $a 및 $b를 만든 다음 테스트 함수에서 $a, $b를 만든 다음 전역 변수의 참조를 테스트 함수의 로컬 변수로 지정합니다. 따라서 함수에서 $a 및 $b를 설정 해제하더라도 함수가 실행된 후에도 $a 및 $b를 인쇄할 수 있습니다. 전역 변수에 이미 두 개의 변수가 있기 때문입니다.

그래서 최종적으로 다음과 같은 결론을 내릴 수 있습니다.

global을 사용하여 함수에서 변수를 선언할 때 먼저 전역 범위에서 동일한 이름을 가진 변수가 있는지 확인합니다. 전역 변수의 참조는 전역 변수를 사용하여 동일한 이름을 가진 변수를 가리킵니다. 전역 범위에 같은 이름의 변수가 없으면 먼저 같은 이름의 전역 변수를 만든 다음 로컬 변수를 만든 다음 전역 변수의 참조를 로컬 변수로 지정합니다.

관련 튜토리얼: PHP 비디오 튜토리얼

위 내용은 PHP의 전역 변수에 대해 이야기해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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