您好,登錄后才能下訂單哦!
大部分的PHP變量只有一個單獨的范圍。這個單獨的范圍跨度同樣包含了include和require引入的文件
這里變量$a將會在包含文件b.inc中生效
<?php$a = 1;include 'b.inc';?>
在用戶自定義函數中,一個局部函數范圍將被引入。任何用于函數內部的變量按缺省情況將被限制在局部函數范圍內
下面這個腳本不會有任何輸出,因為echo語句引用了一個局部版本的變量 $a,而且在這個范圍內,它并沒有被賦值
<?php$a = 1; /* global scope */function Test() { echo $a; /* reference to local scope variable */} Test();?>
以下腳本的輸出將是“3”。在函數中聲明了全局變量a和a和b之后,對任一變量的所有引用都會指向其全局版本。對于一個函數能夠聲明的全局變量的最大個數,PHP沒有限制
<?php$a = 1;$b = 2;function Sum() { global $a, $b; $b = $a + $b; } Sum();echo $b;//3?>
在全局范圍內訪問變量的第二個辦法,是用特殊的PHP自定義$GLOBALS數組
GLOBALS是一個關聯數組,每一個變量為一個元素,鍵名對應變量名,值對應變量的內容。GLOBALS之所以在全局范圍內存在,是因為GLOBALS是一個超全局變量
<?php$a = 1;$b = 2;function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum();echo $b;//3?>
對于全部腳本而言,PHP提供了大量的預定義變量。這些變量將所有的外部變量表示成內建環境變量,并且將錯誤信息表示成返回頭
下面是預定義變量的列表
超全局變量 — 超全局變量是在全部作用域中始終可用的內置變量$GLOBALS — 引用全局作用域中可用的全部變量$_SERVER — 服務器和執行環境信息$_GET — HTTP GET 變量$_POST — HTTP POST 變量$_FILES — HTTP 文件上傳變量$_REQUEST — HTTP Request 變量$_SESSION — Session 變量$_ENV — 環境變量$_COOKIE — HTTP Cookies$php_errormsg — 前一個錯誤信息$HTTP_RAW_POST_DATA — 原生POST數據$http_response_header — HTTP 響應頭$argc — 傳遞給腳本的參數數目$argv — 傳遞給腳本的參數數組
大多數的預定義變量并不是超全局變量,它們需要用'global' 關鍵字來使它們在函數的本地區域中有效
超全局變量在任何范圍內都有效,它們并不需要'global'聲明
下面是超全局變量的列表
$GLOBALS$_SERVER$_GET$_POST$_FILES$_COOKIE$_SESSION$_REQUEST$_ENV
<?phpfunction test_global() { //預定義變量 global $HTTP_POST_VARS; echo $HTTP_POST_VARS['name']; //超全局變量 echo $_POST['name']; }?>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。