局部變量與全局變量
變量的存在有著它的生命周期,我們可以讓它存在于一個小的函數內部,也可讓它存在于整個程序當中。對于一般情況下聲明的變量,我們稱之為局部變量,只能在當前程序段中存在,而使用$globals聲明出來的變量則是在當前頁面整個程序當中都會有效。
例:
在這段程序當中,
第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的值了。
但如果,我們將程序修改下面的樣式:
我們發現,在sum函數中,我們給變量a和b加上了一個global修飾符,這個時候,a和b就和函數外的a和b建立上了關系,它們就是同一個變量了。因此,這個程序在運行的時候,其結果就為3了。因此,我們在聲明全局變量時,只需在局部使用它們時(本例中是在函數sum中),給它們加上一個修飾符global,它們就可以繼承外部的值,也就不再是局部變量了。
作者博客:http://walkbro.cnblogs.com/