-
全局變量
鎖定
全局變量是編程術語中的一種,源自於變量之分。
變量分為局部與全局,局部變量又可稱之為內部變量。由某對象或某個函數所創建的變量通常都是局部變量,只能被內部引用,而無法被其它對象或函數引用。
全局變量既可以是某對象函數創建,也可以是在本程序任何地方創建。全局變量是可以被本程序所有對象或函數引用。
全局變量英文
Global variables
例如:
int a,b; /*外部變量*/ void f1() /*函數f1*/ { …… } float x,y; /*外部變量*/ int f2() /*函數f2*/ { …… } main() /*主函數*/ { int maomi(); …… }/*全局變量x,y作用域 全局變量a,b作用域*/
從上例可以看出a、b、x、y 都是在函數外部定義的外部變量,都是全局變量。但x,y 定義在函數f1之後,而在f1內又無對x,y的説明,所以它們在f1內無效。 a,b定義在源程序最前面,因此在f1,f2及main內不加説明也可使用。
全局變量是使用相同的內存塊在整個類中存儲一個值.
全局變量extern與static
extern在其他源程序中也可以使用;static只能在本程序中使用。
全局變量使用注意
全局變量的存在主要有以下一些原因:
2,使用全局變量程序運行時速度更快一些(因為內存不需要再分配),同樣也快不了多少。
4,當全局變量與局部變量重名的時候,起作用的是局部變量,全局變量被屏蔽掉。
5,還可以用extern在函數外對全局變量聲明,使全局變量的作用域從聲明處到文件的結束。
6,全局變量的優先度低於局部變量。
總之,全局變量可以使用,但是全局變量使用時應注意的是儘可能使其名字易於理解,而且不能太短,避免名字空間的污染;避免使用巨大對象的全局變量。
如下例所示聲明全局變量:
Global y As String
全局變量使用
面嚮對象語言中的使用
在現代的面嚮對象語言如Java,C++,C#,Ruby中,由於變量都是封裝在類裏面的,對別的類不可見,所以已經幾乎完全拋棄了全局變量的概念。然而,可以通過把一個類定義為public static,把類成員變量也定義為public static,使該變量在內存中佔用固定、唯一的一塊空間,來實現全局變量的功能。
全局變量超級全局變量
PHP 超級全局變量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
變量 | 描述 |
---|---|
$GLOBAL | $GLOBAL 是PHP的一個超級全局變量組,在一個PHP腳本的全部作用域中都可以訪問。 $GLOBAL 是一個包含了全部變量的全局組合數組。變量的名字就是數組的鍵。 |
$_SERVER | $_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。這個數組中的項目由 Web 服務器創建。不能保證每個服務器都提供全部項目;服務器可能會忽略一些,或者提供一些沒有在這裏列舉出來的項目。 |
$_REQUEST | PHP $_REQUEST 用於收集HTML表單提交的數據。 |
$_POST | PHP $_POST 被廣泛應用於收集表單數據,在HTML form標籤的指定該屬性:"method="post"。 |
$_GET | PHP $_GET 同樣被廣泛應用於收集表單數據,在HTML form標籤的指定該屬性:"method="get"。 |
- 參考資料
-
- 1. PHP 超級全局變量 .w3cschool 教程[引用日期2014-03-04]