전역변수란 무엇인가요?
전역 변수는 함수 외부에서 정의되며 범위는 변수가 정의된 위치에서 시작하여 프로그램 파일의 끝에서 끝납니다. . 다른 프로그래밍 언어와 달리 전역 변수는 자동으로 사용 가능해지지 않습니다. 이전 장에서는 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를 사용하여 작성할 수 있습니다.
코드는 다음과 같습니다.위는 전역 변수의 정의와 PHP 변수 범위의 전역 변수 예를 소개한 것입니다. 다음 장에서는 1. " " 2. PHP 프로그래밍 입문부터 마스터링까지 전체 동영상 튜토리얼 위 내용은 전역 변수란 무엇입니까? PHP 변수 범위의 전역 변수 인스턴스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!运算结果为 30 // 使用 global 关键字就可以加载全局变量在函数内使用