먼저 코드를 살펴보겠습니다
<?php $a = 1 ; /* global scope */ function Test () { echo $a ; /* reference to local scope variable */ } Test (); ?>
이 스크립트에는 출력이 없습니다. 왜냐하면 echo 문참조는 변수 $a의 로컬 버전이고 이 범위에서는 값이 할당되지 않았기 때문입니다. PHP의 전역 변수는 C 언어와 약간 다르다는 것을 알 수 있습니다. C 언어에서 전역 변수는 로컬 변수에 의해 재정의되지 않는 한 자동으로 함수에 적용됩니다. 이로 인해 일부 문제가 발생할 수 있으며 누군가 실수로 전역 변수를 변경할 수도 있습니다. PHP의 전역 변수는 함수에서 사용될 때 전역으로 선언되어야 합니다.
global 키워드
먼저 global을 사용한 예, 코드는 다음과 같습니다.
<?php $a = 1 ; $b = 2 ; function Sum () { global $a , $b ; $b = $a + $b ; } Sum (); echo $b ; ?>
위 스크립트의 출력은 "3"이 됩니다. 전역 변수 $a 및 $b가 함수에서 선언된 후 두 변수에 대한 모든 참조는 해당 전역 버전을 가리킵니다. PHP는 함수가 선언할 수 있는 전역 변수의 최대 개수에 제한이 없습니다.
전역 범위의 변수에 액세스하는 두 번째 방법은 특별한 PHP 사용자 정의 $GLOBALS arrays를 사용하는 것입니다. 이전 예는 다음과 같이 작성할 수 있습니다.
예제 #2 전역 대신 $GLOBALS를 사용하면 코드는 다음과 같습니다.
<?php $a = 1 ; $b = 2 ; function Sum () { $GLOBALS [ 'b' ] = $GLOBALS [ 'a' ] + $GLOBALS [ 'b' ]; } Sum (); echo $b ; ?>
$GLOBALS는 연관 배열이고 각 변수는 요소이며 키 이름은 변수에 해당합니다. name, 값은 변수의 내용에 해당합니다. $GLOBALS가 전역 범위에 존재하는 이유는 $GLOBALS가 수퍼 전역 변수이기 때문입니다. 다음 예에서는 슈퍼 전역 변수의 유용성을 보여줍니다.
예제 #3 슈퍼 전역 변수 및 범위를 보여주는 예
<?php function test_global () { // 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域中有效。 global $HTTP_POST_VARS ; echo $HTTP_POST_VARS [ 'name' ]; // Superglobals 在任何范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 echo $_POST [ 'name' ]; } ?>
위 내용은 PHP에서 global 키워드 및 $GLOBALS 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!