全域變數是程式設計術語中的一種,源自於變數之分。
變數分為局部與全域,局部變數又可稱之為內部變數。由某個物件或某個函數所建立的變數通常都是局部變量,只能被內部引用,而無法被其它物件或函數引用。 (推薦學習:PHP影片教學)
全域變數的定義不可能在函數內部,因為在函數內部建立的變數叫做局部變數。 全域變數既可以是某物件函數創建,也可以是在本程式任何地方創建。全域變數是可以被本程式所有物件或函數引用。
全域變數的存在主要有以下一些原因:
#1,使用全域變數會佔用更多的記憶體(因為其生命期長),不過在電腦配置很高的今天,這個不應該算什麼問題,除非使用的是巨大物件的全域變量,能避免就一定要避免。
2,使用全域變數程式運行時速度更快一些(因為記憶體不需要再分配),同樣也快不了多少。
3,對於局部變數的名字空間污染,這個在不使用太多變數時是可以避免的。
4,當全域變數與局部變數重名的時候,起作用的是局部變量,全域變數被屏蔽掉。
5,也可以用extern在函數外對全域變數聲明,讓全域變數的作用域從宣告到檔案的結束。
6,全域變數的優先權低於局部變數。
總之,全域變數可以使用,但是全域變數使用時應注意的是盡可能使其名字易於理解,而且不能太短,避免名字空間的污染;避免使用巨大物件的全域變數。
在現代的物件導向語言如Java,C ,C#,Ruby中,由於變數都是封裝在類別裡面的,對別的類別不可見,所以已經幾乎完全拋棄了全域變數的概念。
然而,可以把一個類別定義為public static,把類別成員變數也定義為public static,使該變數在記憶體中佔用固定、唯一的一塊空間,來實現全域變數的功能。
更多PHP相關技術文章,請造訪PHP圖文教學欄位進行學習!
以上是全域變數的定義不可能在的詳細內容。更多資訊請關注PHP中文網其他相關文章!