1. 구현 원칙
PHP 함수에서는 전역 구문이 비교적 일반적입니다. 함수에서 외부 변수를 전역화하면 해당 변수를 함수에서 사용할 수 있다는 사실을 누구나 알고 있지만 많은 네티즌들은 이를 모르는 경우가 많습니다. 이제 마지막 예를 들어보면 누구나 한 눈에 알 수 있을 것입니다.
$globalStr = '.net';
globalTest() 함수{
글로벌 $globalStr;
$globalStr = 'jb51'.$globalStr;
설정 해제($globalStr);
}
글로벌 테스트();
echo $globalStr; //입력: jb51.net
이 예에서 변수를 전역화하는 것은 참조를 전달하는 것과 동일하다는 것을 알 수 있습니다. 이러한 방식으로 이해하면 다음 코드 출력은 이해하기 어렵지 않습니다.
2. PHP에서 글로벌의 역할
전역 $var1,$var2;
이는 동일한 이름을 가진 외부 변수에 대한 참조이며, 변수 자체의 범위는 여전히 함수 본문 내에 있습니다. 이러한 변수의 값을 변경하면 자연스럽게 같은 이름을 가진 외부 변수도 변경됩니다. 그러나 일단 &가 사용되면 변수는 더 이상 같은 이름의 참조가 아닙니다.
$var1 = 1;
$var2 = 2;
기능 테스트()
{
Global $var1,$var2; // 범위는 함수 본문 내에 있습니다.
$var1 = 3;
}
테스트();
에코 $var1;
?>
결과는 3입니다. 같은 이름의 참조이기 때문입니다.
$var1 = 1;
$var2 = 2;
기능 테스트()
{
전역 $var1,$var2;
$var1 = &var2;
}
테스트();
에코 $var1
?>
결과는 1입니다. 함수의 $var1은 할당 후 $var2와 동일한 참조를 갖기 때문입니다. 아래 코드를 자세히 살펴보세요.
$var1 = 1;
$var2 = 2;
함수 test_global()
{
글로벌 $var1,$var2
$var1=&$var2
$var1=7;
}
테스트_글로벌()
에코 $var1;
에코 $var2;
?>
결과는 1과 7입니다. 함수 내의 $var1과 $var2는 동일한 참조를 갖기 때문입니다. 따라서 $var1의 값이 변경되고 $var2의 값이 변경됩니다.