Global은 PHP의 특수 명령입니다. 모두가 이를 super globalvariable이라고 부릅니다. 이제 저는 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에서 전역 변수를 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!