전역 변수 및 "전역" 키워드
PHP는 기본적으로 일부 "수퍼전역" 변수를 정의합니다. 이러한 변수는 자동으로 전역화되며 $_GET 및 $_REQUEST 등과 같이 프로그램 어디에서나 호출할 수 있습니다. 일반적으로 데이터나 기타 외부 데이터에서 가져오며 이러한 변수를 사용해도 기본적으로 쓰기가 불가능하므로 일반적으로 문제가 발생하지 않습니다. 하지만 자신만의 전역 변수를 사용할 수 있습니다. "global" 키워드를 사용하면 전역 데이터를 함수의 로컬 범위로 가져올 수 있습니다. "가변 사용 범위"가 이해가 되지 않는다면 PHP 매뉴얼의 관련 지침을 참조하세요. 다음은 "global" 키워드를 사용한 데모 예입니다.
<?php $my_var = 'Hello World'; test_global(); function test_global() { // Now in local scope // the $my_var variable doesn't exist // Produces error: "Undefined variable: my_var" echo $my_var; // Now let's important the variable global $my_var; // Works: echo $my_var; } ?>
위 예에서 볼 수 있듯이 "global" 키워드는 전역 변수를 가져오는 데 사용됩니다. 훌륭하게 작동하고 단순해 보이는데, 글로벌 데이터를 정의하기 위해 "global" 키워드를 사용하는 것에 대해 왜 걱정합니까?
업계에 처음 입문하는 분들을 위해 전역 변수, "전역 변수"의 사용법을 설명하겠습니다. 이 명사에 있는 "전역"이라는 두 단어는 이미 이 변수가 모든 곳에서 사용될 수 있음을 알려줍니다. : <?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b; //在里面声明为全局变量
$b = $a + $b;
}
Sum();
echo $b;
?>
결과: 3글로벌 변수 global이 없으면 메소드에서 $a, $b의 값을 얻을 수 없으므로 메소드에서 외부 변수를 사용하려면 이 변수를 선언해야 합니다. 먼저 전역 변수로 사용할 수 있도록 하여 사용하는 것이 매우 편리합니다.
<?PHP $w3sky = 1; $w3sky2 = 2; function Sum() { global $w3sky, $w3sky2;$w3sky2 = $w3sky + $w3sky2; }Sum(); echo $w3sky2; ?>위 스크립트의 출력은 "3"입니다. 전역 변수 $w3sky 및 $w3sky2는 함수에서 선언되며 모든 변수의 모든 참조 변수는 전역 변수를 가리킵니다. PHP는 함수가 선언할 수 있는 전역 변수의 최대 개수에 제한이 없습니다.
전역 범위의 변수에 액세스하는 두 번째 방법은 특별한 PHP 사용자 정의 $GLOBALS 배열을 사용하는 것입니다. 이전 예제
는 다음과 같이 작성할 수 있습니다.
예제 $GLOBALS를 사용하여 global<?PHP $w3sky = 1; $w3sky2 = 2;function Sum() { $GLOBALS['w3sky'] = $GLOBALS['w3sky'] + $GLOBALS['w3sky2']; }Sum(); echo $w3sky2; ?>을 대체합니다. $GLOBALS 배열에서 각 변수는 요소이고 키 이름은 변수 이름에 해당하고 값은 해당 변수의 내용
. $GLOBALS는 수퍼글로벌 변수이기 때문에 $GLOBALS는 전역 범위에 존재합니다. 다음 예제는 슈퍼 전역 변수의 사용을 보여줍니다.
슈퍼 전역 변수 및 범위 예제를 보여주는 예제<?PHP function test_global() { // 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函 数的本地区域中有效。 global $HTTP_POST_VARS;echo $HTTP_POST_VARS['name'];// Superglobals 在任何 范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 echo $_POST['name']; } ?>global 즉, 파일에서 전역 $db로 선언하면 선언 아래에 나타납니다. 이제 다음 $db
<?php
function SayMyABCs2()
{
global $count;
while($count<10)
{
print(chr(ord('A')+$count));
$count=$count+1;
}
print("<br>Now I know $count letters<br>");
}
$count=0;
SayMyABCs2();
$count=$count+1;
print("Now I've made $count function call(s).<br>");
SayMyABCs2();
$count=$count+1;
print("Now I've made $count function call(s).<br>");
?>
출력을 참조할 수 있습니다. ABCDEFGHIJ //第一次循环依次打印10个大写字母
Now I know 10 letters
Now I've made 11 function call(s). //第二次由于条件大于10则不执行循环
Now I know 11 letters
Now I've made 12 function call(s).
변수의 전역 선언으로 인해 이제 $count 변수가 하나만 있으며 가 호출될 때 함수 내부와 외부 모두에서 증가합니다. 두 번째로 SayMyABCs2()일 때 $count는 이미 11이므로 문자 인쇄 루프에 전혀 들어가지 않습니다. 함수 내에 정의된
$count1,$count2,...,$countn;
global은 특히 코드가 실행되기 전에 각각에 연결될 수 있는 일부 변수를 제공하므로 유용합니다. 페이지에서 함수가 이러한 변수를 볼 수 있도록 하여 호출될 때마다 함수에 매개변수로 전달하는
문제를 제거합니다
위 내용은 PHP 전역 전역 변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!