전역 변수 및 "전역" 키워드
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;
?>
<?PHP $w3sky = 1; $w3sky2 = 2; function Sum() { global $w3sky, $w3sky2;$w3sky2 = $w3sky + $w3sky2; }Sum(); echo $w3sky2; ?>
전역 범위의 변수에 액세스하는 두 번째 방법은 특별한 PHP 사용자 정의 $GLOBALS 배열을 사용하는 것입니다. 이전 예제
는 다음과 같이 작성할 수 있습니다.
예제 $GLOBALS를 사용하여 global<?PHP $w3sky = 1; $w3sky2 = 2;function Sum() { $GLOBALS['w3sky'] = $GLOBALS['w3sky'] + $GLOBALS['w3sky2']; }Sum(); echo $w3sky2; ?>
. $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']; } ?>
$count1,$count2,...,$countn; 위 내용은 PHP 전역 전역 변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!<?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).
문제를 제거합니다