淺析php中常量,變量的作用域和生存週期

在PHP腳本中變量主要有:內置超級全局變量,一般的變量,常量,全局變量,靜態變量等等,我們在使用它們的時候除了要正確地知道它們的語法以外,更重要的是,我們要知道它們在本質上的區別與聯繫—即它們的作用域的問題。

1.內置超級全局變量可以在腳本的任何地方使用和可見。即是說,如果我們在一個PHP頁面中改變了其中的一個值,那麼在其他PHP頁面中使用時,它的值也會發生改變。

2.常量一旦被聲明將可以在全局可見,也就是說,它們可以函數內外使用,但是這僅僅限於一個頁面之中(包含我們通過include和include_once)包含進來的PHP腳本,但是在其他的頁面之中就不能使用了。

3.在一個腳本中聲明的全局變量在整個腳本中是可見的,但不是在函數內部,在函數內部的變量如果與全局變量名稱相同,以函數內部的變量爲準。

4.函數內部使用的變量聲明爲全局變量時,其名稱要與全局變量的名稱一致,在這樣的情況下,我們就可以在函數中使用函數外部的全局變量了,這樣就可以避免上一種因爲函數內部的變量與外部的全局變量名稱相同而覆蓋了外部變量這樣的情況。

5.在函數內部創建並聲明爲靜態的變量無法在函數外部可見,但是可以在函數的多次執行過程中保持該值,最常見的情況就是在函數的遞歸執行的過程之中。

6.在函數內部創建的變量對函數來說是本地的,而當函數終止時,該變量也就不存在了。

超級全局變量的完整列表如下:
1.$GOBALS  所有全局變量數組
2.$_SERVER  服務器環境變量數組
3.$_POST  通過POST方法傳遞給該腳本的變量數組
4.$_GET  通過GET方法傳遞給該腳本的變量數組
5.$_COOKIE  cookie變量數組
6.$_FILES  與文件上傳相關的變量數組
7.$ENV 環境變量數組
8.$_REQUEST 所有用戶輸入的變量數組包括$_GET $_POST $_COOKIE 所包含的輸入內容
9.$_SESSION  會話變量數組

我們要注意的是:變量和常量另一個重要的差異是:常量只可以定義boolean(布爾型),integer(整型),float(浮點型) 和 string(字符串型)數據,但不能定義 resource類型的數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章