PHP 전역 변수
전역 변수의 글로벌 정의 와 사용
처음에 나의 요 구 는 이 랬 다.
php
$name = "why";
function changeName(){
$name = "what";
}
changeName();
echo "my name is " . $name . "
";
?>
실행 코드 의 결 과 는:my name is why 입 니 다.changeName()을 실행 한 후에 what 를 표시 하 는 것 이 아 닙 니 다.이 유 를 분석 합 니 다.함수 체 changeName 에 있 는$name 변 수 는 부분 변수 로 설정 되 어 있 지 않 기 때 문 입 니 다.$name 의 역할 도 메 인 은 changeName 에 있 습 니 다.따라서 코드 를 수정 하고 전역 변 수 를 다음 과 같이 추가 합 니 다.
php
global $name;
$name = "why";
function changeName(){
$name = "what";
}
changeName();
echo "my name is " . $name . "
";
?>
메모:글로벌 성명 변 수 를 사용 하 는 동시에 변수 에 값 을 부여 할 수 없습니다.global$name="why"의 사용 방식 이 잘못 되 었 습 니 다.
전역 변 수 를 정의 한 후에 실 행 된 결 과 는 여전히 my name is why 입 니 다.이 결 과 는 놀 랍 습 니 다.원래 global 의 정확 한 용법 은"한 함수 에 외부 변 수 를 도입 합 니 다.이 변 수 는 매개 변 수 를 통 해 전달 되 지 않 으 면 global 을 통 해 도입 합 니 다."즉,하나의 함수 가 외부 변 수 를 인용 할 때 함수 내 에서 global 을 통 해 이 변 수 를 설명 할 수 있 습 니 다.그러면 이 변 수 는 함수 에서 사용 할 수 있 습 니 다(매개 변수 로 전달 되 는 것 과 같 습 니 다).그러면 코드 를 다시 수정 합 니 다.
php
$name = "why";
function changeName(){
global $name;
$name = "what";
}
changeName();
echo "my name is " . $name . "
";
?>
이번 실행 결 과 는 my name is what 입 니 다.global 은 매개 변 수 를 전달 하 는 역할 을 하 는 것 이지 변수의 역할 영역 을 전체 로 하 는 것 이 아 닙 니 다.다음 의 예 를 보십시오.
php
$name = "why";
function changeName(){
global $name;
$name = "what";
}
function changeName2(){
$name = "where";
}
changeName();
changeName2();
echo "my name is " . $name . "
";
?>
실행 결 과 는:my name is what 입 니 다.changeName 2()에 global$name 을 추가 하면 실행 결 과 는:my name is where 입 니 다.
다시 말 하면 global 의 역할 은 매개 변 수 를 전달 하 는 것 과 같 습 니 다.함수 외부 에서 성명 하 는 변 수 는 함수 내 에서 사용 하려 면 global 로 이 변 수 를 설명 하 는 것 과 같 습 니 다.그러면 이 변 수 를 전달 하 는 것 과 같 습 니 다.이 변 수 를 참조 할 수 있 습 니 다.
global 매개 변수 정의 외 에 도 초 전역 변수$GLOBAL 을 사용 할 수 있 습 니 다.
php
$name = "why";
function changeName(){
$GLOBALS['name'] = "what";
}
changeName();
echo "my name is " . $name . "
";
?>
2 global 과$GLOBAL
하나의 예:
php
$var1 = 1;
$var2 = 2;
function test1(){
$GLOBALS['var2'] = &$GLOBALS['var1'];
}
test1();
echo $var2 . "
";
$var3 = 1;
$var4 = 2;
function test2(){
global $var3,$var4;
$var4 = &$var3;
}
test2();
echo $var4 . "
";
?>
$var 2 의 값 을 1 로 출력 합 니 다.$var 4 의 값 은 2 입 니 다.$var 3 의 인용 은$var 4 의 인용 주 소 를 가리 키 기 때 문 입 니 다.$var 4 의 실제 값 은 변 하지 않 았 다.공식 적 인 설명 은$GLOBALS[var']는 외부 전역 변수 자체 이 고 global$var 는 외부$var 의 동명 인용 이나 지침 입 니 다.$GLOBAL 은 스 크 립 트 의 모든 역할 영역 에서 사용 할 수 있 으 며 함수 나 방법 에서 global$variable 을 실행 할 필요 가 없습니다. 그들 을 방문 할 수 있 습 니 다.모든 초 전역 변수 와 달리$GLOBALS 는 PHP 에서 항상 사용 할 수 있 습 니 다.다른 예:
php
$var1 = 1;
function test1(){
unset($GLOBALS['var1']);
}
test1();
echo $var1 . "
";
$var2 = 1;
function test2(){
global $var2;
unset($var2);
}
test2();
echo $var2;
?>
출력 결 과 는$var 1 이 존재 하지 않 고$var 2 의 값 은 1 입 니 다.이 는$var 2 는 별명 참조 일 뿐 그 자체 의 값 이 변 하지 않 았 음 을 증명 합 니 다.즉,global$var 는 사실$var=&$GLOBALS[var']입 니 다.외부 변 수 를 호출 하 는 별명 일 뿐 입 니 다!
다음으로 전송:https://www.cnblogs.com/borage/p/3645285.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.