局部變量與全局變量
變量的存在有著它的生命周期,我們可以讓它存在於一個小的函數內部,也可讓它存在於整個程序當中。對於一般情況下聲明的變量,我們稱之為局部變量,只能在當前程序段中存在,而使用$globals聲明出來的變量則是在當前頁面整個程序當中都會有效。
例:
Copy to Clipboard引用的內容:[www.bkjia.com]
$a=1;
$b=2;
function sum()
{$a;
$b;
$b=$a+$b;
}
sum();
echo$b;
?>
在這段程序當中,
第2至3行,我們建立了兩個變量a和b並分別給其賦值為1和2。
第3行至第7行,我們定義了一個自加的函數sum(),其作用是讓sum內部的變量a和b進行相加,並將加得的值賦給b。
第8行,調用sum函數。
第9行,用echo將b的值輸出。
可能有人會認為此時在網頁上輸出的值一定是3,但是運行後你會發現,值還是為2,也就是b原先的值。這就是局部變量的原因造成的,在第2至3行當中聲明的變量無法在sum()函數中使用,也就是說,sum函數中使用的a和b和第2至3行中a和b只是名字相同,但兩者之間毫無關系。所以,在最終輸出的b也就是第3行b的值了。
但如果,我們將程序修改下面的樣式:
Copy to Clipboard引用的內容:[www.bkjia.com]
$a=1;
$b=2;
function sum()
{
global $a,$b;
$b=$a+$b;
}
sum();
echo $b;
?>
<BR><BR></PRE>我們發現,在sum函數中,我們給變量a和b加上了一個global修飾符,這個時候,a和b就和函數外的a和b建立上了關系,它們就是同一個變量了。因此,這個程序在運行的時候,其結果就為3了。因此,我們在聲明全局變量時,只需在局部使用它們時(本例中是在函數sum中),給它們加上一個修飾符global,它們就可以繼承外部的值,也就不再是局部變量了。