>  기사  >  백엔드 개발  >  전역 변수란 무엇입니까? PHP 변수 범위의 전역 변수 인스턴스에 대한 자세한 설명

전역 변수란 무엇입니까? PHP 변수 범위의 전역 변수 인스턴스에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-05-08 10:55:152395검색

전역변수란 무엇인가요?

전역 변수는 함수 외부에서 정의되며 범위는 변수가 정의된 위치에서 시작하여 프로그램 파일의 끝에서 끝납니다. . 다른 프로그래밍 언어와 달리 전역 변수는 자동으로 사용 가능해지지 않습니다. 이전 장에서는 php 변수 범위에 있는 지역 변수 , PHP에서는 를 소개했는데, 이는 함수가 별도의 프로그램 코드로 간주될 수 있기 때문입니다. 조각이므로 지역 변수는 전역 변수의 가시성을 무시하므로 함수에서 전역 변수를 직접 호출할 수 없습니다.

코드 형식은

<?php
 $one = 10;
 $two = 20;
 // 测试在函数内部不能直接使用全局变量 $one 和 $two
 function sum(){
   // 在函数内部新声明并且没有赋初始值的两个变量
   echo "运算结果:".($one+$two)."<br>";
 }
 sum();    //调用函数
?>

프로그램 실행 후 출력 결과는 다음과 같습니다.

运算结果:0             // 两个变量没有初始值则为 NULL ,执行两个空值相加后结果为 0

위의 예에서는 두 개의 전역 변수 $one과 $twe가 sum() 함수 외부에 선언되어 있지만 PHP에서는 전역 변수를 함수 내에서 직접 사용할 수 없습니다. 따라서 sum() 함수에 사용된 변수는 $one과 $twe로, 이는 다시 선언된 두 개의 변수와 동일하며 초기값이 할당되지 않은 두 개의 정의되지 않은 null 값에 대한 연산이므로 결과는 0입니다. 함수에서 전역 변수를 사용하려면 키워드를 사용하여 대상 변수를 정의해야 하며, 이 전역 변수의 키워드는 "global" 키워드를 사용하여 전역 데이터를 가져올 수 있습니다. into 함수의 로컬 범위 내에서 이 변수가 전역 변수임을 함수 본문에 알립니다.

다음은 함수 내부에 "global"이라는 키워드를 사용하여 함수 외부에 선언된 전역 변수를 호출하는 예를 들면 다음과 같습니다.

<?php
 $one = 10;
 $two = 20;
 // 测试在函数内部使用关键字加载 global 全局变量 $one 和 $two
 function sum(){
   //在函数内部使用关键字加载 global 全局变量,加载多个使用逗号分隔
   global $one, $two;
   // 使用函数外部声明的全局变量
   echo "运算结果:".($one+$two)."<br>";
 }
 sum();    //调用函数
?>

"global" 키워드는 전역 변수를 가져오는 데 사용됩니다. 잘 작동하는 것 같고 간단하지만 글로벌 데이터를 정의하기 위해 "global" 키워드를 사용하는 것에 대한 우려는 여전히 있습니다. 세 가지 이유가 있습니다.

1. 코드 재사용이 거의 불가능합니다.

글로벌 변수에 의존하는 함수의 경우, 다른 환경에서는 이 함수를 사용하는 것이 거의 불가능합니다. 또 다른 문제는 이 함수를 추출하여 다른 코드에서 사용할 수 없다는 것입니다.

2. 디버깅과 문제 해결은 매우 어렵습니다.

전역 변수를 추적하는 것은 비전역 변수를 추적하는 것보다 훨씬 어렵습니다. 일부 모호한 포함 파일에서 전역 변수가 재정의될 수 있으며, 도움을 줄 수 있는 아주 좋은 프로그램 편집기(또는 IDE)가 있더라도 문제를 발견하는 데 몇 시간이 걸릴 수 있습니다.

3. 이 코드는 이해하기 매우 어려울 것입니다.

전역 변수는 어디서 왔고, 어떤 용도로 사용되는지 파악하기 어렵습니다. 개발 과정에서는 전역 변수를 모두 알게 되지만, 1년쯤 지나면 그 중 일부는 잊어버리게 될 수도 있습니다. 이때 전역 변수를 너무 많이 사용했다는 사실을 후회하게 될 것입니다.

$GLOBALS함수에 전역 변수를 사용하는 것 외에도 전역 키워드를 사용하는 것 외에도 특수한 PHP 사용자 정의를 사용할 수도 있습니다

$GLOBALS

배열. 이전 예는 global 대신 $GLOBALS를 사용하여 작성할 수 있습니다.

코드는 다음과 같습니다.

运算结果为 30         // 使用 global 关键字就可以加载全局变量在函数内使用
설명: $GLOBALS 배열에서 각 변수는 요소이고 키 이름은 변수 이름에 해당하며 값은 변수의 내용에 해당합니다.

$GLOBALS는 슈퍼전역 변수이기 때문에 전역 범위에 존재합니다.

위는 전역 변수의 정의와 PHP 변수 범위의 전역 변수 예를 소개한 것입니다. 다음 장에서는

PHP의 정적 정적 변수

가 무엇인지 소개하겠습니다. 【관련 튜토리얼 추천】

1. "

php.cn Dugu Jiujian (4) - PHP 비디오 튜토리얼

" 2. PHP 프로그래밍 입문부터 마스터링까지 전체 동영상 튜토리얼

3.
PHP 실용 동영상 튜토리얼

위 내용은 전역 변수란 무엇입니까? PHP 변수 범위의 전역 변수 인스턴스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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