변수는 전역변수와 지역변수로 구분됩니다. C 언어를 배운 사람이라면 전역 변수의 범위가 파일 전체라는 것을 알고 있을 것입니다. 함수 내부에서도 유효하지만, PHP에서는 함수에 전역 변수를 사용하면 해당 변수가 정의되지 않은 것으로 간주합니다. 함수 내에서 이 전역 변수를 사용해야 하는 경우 함수 내에서 전역 변수 앞에 global 키워드를 추가해야 합니다. 아래는 제가 작성한 작은 데모입니다. 위에서 말한 것을 증명하기 위해
<code><span><span><?php</span><span>$str</span> = <span>"string"</span>; <span><span>function</span><span>test</span><span>()</span> {</span><span>if</span> (<span>isset</span>(<span>$str</span>)) { <span>echo</span><span>"the string is defined"</span>; } <span>else</span> { <span>echo</span><span>"the string is undefined"</span>; } } test(); <span>?></span></span></code>
브라우저에서 실행한 결과는 다음과 같습니다.
문자열이 정의되지 않았습니다
<code><span><span><?php</span><span>$str</span> = <span>"string"</span>; <span><span>function</span><span>test</span><span>()</span> {</span><span>global</span><span>$str</span>;<span>//上面的test函数中没有这句话</span><span>if</span> (<span>isset</span>(<span>$str</span>)) { <span>echo</span><span>"the string is defined"</span>; } <span>else</span> { <span>echo</span><span>"the string is undefined"</span>; } } test(); <span>?></span></span></code>
브라우저에서 실행한 결과는 다음과 같습니다.
문자열이 정의됩니다
$GLOBALS — 전역 범위에서 사용 가능한 모든 변수를 나타냅니다.
모든 변수를 포함하는 전역 결합 배열입니다. 변수의 이름은 배열의 키입니다.
<code><span><span><?php</span><span><span>function</span><span>test</span><span>()</span> {</span><span>$foo</span> = <span>"local variable"</span>; <span>echo</span><span>'$foo in global scope: '</span> . <span>$GLOBALS</span>[<span>"foo"</span>] . <span>"\n"</span>; <span>echo</span><span>'$foo in current scope: '</span> . <span>$foo</span> . <span>"\n"</span>; } <span>$foo</span> = <span>"Example content"</span>; test(); <span>?></span></span></code>
위 루틴의 출력은 다음과 유사합니다.
<code><span>$foo</span><span>in</span><span>global</span> scope: Example content <span>$foo</span><span>in</span> current scope: <span>local</span><span>variable</span></code>
위 내용은 내용의 측면을 포함하여 PHP에서의 전역 사용을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.