Global은 PHP의 특수 명령입니다. 모두가 이를 슈퍼 글로벌변수라고 부릅니다. 이제 저는 오늘 글로벌 학습 노트를 정의하기 위해 Global을 사용하고 있음을 소개하겠습니다.
저는 PHP의 변수 범위와 함수 변수에 익숙하지 않습니다. 글로벌 세계는 완전히 고립되어 있습니다. 즉, 서로 접근할 수 없습니다.
예:
코드는 다음과 같습니다.
$test = 123; abc(); //这里什么都不输出,因为访问不到$test变量 function abc(){ echo($test); }$test = 123; abc(); //这里什么都不输出,因为访问不到$test变量 function abc(){ echo($test); }
함수 내부의 외부 변수에 액세스하려면 다음을 수행해야 합니다.
코드는 다음과 같습니다.
$test = 123; abc(); //输出123 function abc(){ global $test; echo($test); }$test = 123; abc(); //输出123 function abc(){ global $test; echo($test); }
하지만 만약 우리가 함수에 전역 변수를 정의하려면 다음과 같이
코드는 다음과 같습니다.
function abc(){ global $test; $test = 123; } abc(); echo($test); //输出123function abc(){ global $test; $test = 123; } abc(); echo($test);
//Output 123 이렇게 하면 함수 내부에 정의된 변수를 외부에서
사용자 custom에서 액세스할 수 있습니다. function, 로컬 함수 범위가 소개됩니다. 함수 내에서 사용되는 모든 변수는 기본적으로 로컬 함수 범위로 제한됩니다(include 및 require로 가져온 파일의 변수 포함)!
설명: Test_Global은 A.php 파일에 정의되어 있습니다. 타사 함수, 이 함수는 B.php 파일에서 $a의 전역 변수를 가져오기 위해 include를 사용하므로 $a는 Test_Global 로컬 함수의 범위로 제한되므로 B.php 파일의 $a의 범위는 대신 Test_Global 내부에 있습니다. 전체 A.php에 영향을 미치는...
해결책:
1. 로컬 함수를 분리합니다
//A.php 파일
코드는 다음과 같습니다.
<?php function Test_Global() { Test(); } include 'B.php'; //将include 从局部Test_Global函数中移出 $a = 0 ; Test_Global(); echo $a; ?> //B.php 文件 <?php function Test() { global $a; $a =1; } ?>
2. 코드는 다음과 같습니다. 다음과 같습니다:
//A.php 文件 <?php include 'B.php'; $a =0; Set_Global($a); echo $a; ?> //B.php 文件 <?php function Set_Global(&$var) { $var=1; } ?>
위 내용은 PHP는 Global을 사용하여 전역 변수 사용 방법을 정의합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!