>  기사  >  백엔드 개발  >  PHP에서 global 키워드 및 $GLOBALS 사용법

PHP에서 global 키워드 및 $GLOBALS 사용법

怪我咯
怪我咯원래의
2017-06-19 16:04:485953검색

먼저 코드를 살펴보겠습니다

<?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 [ &#39;b&#39; ] =  $GLOBALS [ &#39;a&#39; ] +  $GLOBALS [ &#39;b&#39; ];
}

Sum ();
echo  $b ;
?>

$GLOBALS는 연관 배열이고 각 변수는 요소이며 키 이름은 변수에 해당합니다. name, 값은 변수의 내용에 해당합니다. $GLOBALS가 전역 범위에 존재하는 이유는 $GLOBALS가 수퍼 전역 변수이기 때문입니다. 다음 예에서는 슈퍼 전역 변수의 유용성을 보여줍니다.

예제 #3 슈퍼 전역 변수 및 범위를 보여주는 예

<?php
function  test_global ()
{
     // 大多数的预定义变量并不 "super",它们需要用 &#39;global&#39; 关键字来使它们在函数的本地区域中有效。
     global  $HTTP_POST_VARS ;
    echo  $HTTP_POST_VARS [ &#39;name&#39; ];
     // Superglobals 在任何范围内都有效,它们并不需要 &#39;global&#39; 声明。Superglobals 是在 PHP 4.1.0 引入的。
     echo  $_POST [ &#39;name&#39; ];
}
?>

위 내용은 PHP에서 global 키워드 및 $GLOBALS 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.