php 中9大預定義超全域變數用法詳解

怪我咯
發布: 2023-03-13 20:02:01
原創
1884 人瀏覽過

PHP 中的許多預先定義變數都是“超全域的”,這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以存取它們。

這些超全域變數是:

  • $GLOBALS

  • $_SERVER

  • $_REQUEST

  • $_POST

  • $_GET

  • $_FILES

  • $_ENV

  • #$_COOKIE

  • $_SESSION

#本文主要介紹PHP9個超全域變數

1、$_SERVER

$_SERVER超級全域變數包含由網頁伺服器建立的訊息,它提供了伺服器和客戶配置及當前請求環境的有關資訊。根據伺服器不同,$_SERVER中的變數值和變數個數會有差別,不過一般都可以找到CGI1.1規範中定義的變數。其中包括:

$_SERVER['HTTP_REFERER']; 引導使用者到達目前位置的頁面的URL ;

$_SERVER['REMOTE_ADDR']; 客戶IP位址;

$_SERVER['REQUEST_URI']; URL的路徑部分。如果URL是 [url]http://www.example.com/blog/apache/index.html[/url] ,那麼URI就是/blog/apache/index.html 。

$_SERVER['HTTP_USER_AGENT']; 客戶的使用者代理,一般會提供作業系統和瀏覽器的有關資訊。

2、$_GET

$_GET 超級全域變數包含使用GET方法傳遞的參數的相關資訊。如果請求URL為[url]http://www.example.com /index.html?cat=apache&id=157[/url], 就可以使用$_GET超級全域變數存取下列變數:

$ _GET['cat'] = "apache";

$_GET['id'] = "157";

預設情況下,要存取通GET方法傳遞的變量,$_GET超級全域變數是唯一的途徑。

3、$_POST

$_POST超級全域變數包含用POST方法傳遞的參數的相關資訊。

 程式碼如下:

<form caction="subscribe.php" method="post">
  <p> Email address : <br>
    <input type="text" name="email" size="20" maxlength="so" value="">
  </p>
  <p> Password : <br>
    <input type="password" name="pswd" size="20" maxlength="15" value="">
  </p>
  <p>
    <input type="submit" name="subscribe" value="subscribe!">
  </p>
</form>
登入後複製

透過腳本subscribe.php,就可以使用下面的POST變數

$_POST[&#39;email&#39;] = " jason@example.com ";
$_POST[&#39;pswd&#39;] = "rainyday";
$_POST[&#39;subscribe&#39;] = "subscribe!";
登入後複製

與$_GET一樣,在預設情況下,$_POST超級全域變數是存取POST變數的唯一途徑。

4、$_COOKIE

$_COOKIE 超級全域變數儲存了透過HTTP cookie傳遞到腳本的資訊。這些cookie一般是由先前執行的PHP腳本透過PHP函數setcookie()設定的。例如,假設使用 setcookie() 儲存了一個名為 example.com、值為ab2213的cookie。以後就可以透過呼叫$_COOKIE['example.com']來得到這個值。

5、$_FILES

$_FILES超級全域變數包含透過POST方法上傳到伺服器的資料的資訊。這個超級全域變數與其他的變數有所不同,它是一個二維陣列,包含5個元素。第一個下標示表單的檔案上傳元素名稱;第二個下標是五個預定義下標之一,這些下標描述了上傳檔案的某個屬性:

$_FILES[&#39;upload-name&#39;][&#39;name&#39;]; 从客户端向服务器上传文件的文件名;
$_FILES[&#39;upload-name&#39;][&#39;type&#39;]; 上传文件的MIME类型,这个变量是否赋值取决于浏览器的功能。
$_FILES[&#39;upload-name&#39;][&#39;size&#39;]; 上传文件的大小(以字节为单位);
$_FILES[&#39;upload-name&#39;][&#39;tmp_name&#39;]; 上传之后,将此文件移到最终位置之前赋予的临时名。
$_FILES[&#39;upload-name&#39;][&#39;error&#39;]; 上传状态码。尽管这个变量的名为 error ,但实际上在成功的情况下也会填写这个变量。它有五个可能的值:
UPLOAD_ERR_OK 文件成功上传
UPLOAD_ERR_INI_SIZE 文件大小超出了 upload_max_filesize 指令所指定的最大值。
UPLOAD_ERR_FORM_SIZE 文件大小超出了MAX_FILE_SIZE 隐藏表单域参数(可选)指定的最大值。
UPLOAD_ERR_PARTIAL 文件只上传了一部分
UPLOAD_ERR_NO_FILE 上传表单中没有指定文件
登入後複製

6、$_ENV

$_ENV超級全域變數提供PHP解析所在伺服器環境的資訊。此數組中的變數包括:

$_ENV['HOSTNAME'] 伺服器的主機名稱

$_ENV['SHELL'] 系統shell

7、 $_REQUEST

$_REQUEST 超級全域變數是一個全能選手,它記錄了透過各種方法傳遞給腳本的變量,特別是GET ,POST 和COOKIE 。 這些變數的順序不依賴它們在傳送腳本中出現的順序,而是依賴 variables_order 配置指令所指定的順序。建議少用這個超級變量,因為它不夠安全。

8、$_SESSION

$_SESSION 超級全域變數包含與所有會話相關的資訊。註冊會話資訊能為你提供便利,這樣就能在整個網站中引用這些會話訊息,而無需透過GET或POST顯示的傳遞資料。

9、$GLOBALS

$GLOBALS 超級全域變數陣列可以認為是超級全域變數的超集,包含全域作用域內的所有變數。執行下面的程式碼可以查看$GLOBALS 中所有的變數。

print &#39;<pre class="brush:php;toolbar:false">&#39;;  
 
print_r ($GLOBALS);  
 
print &#39;
';
登入後複製

以上是php 中9大預定義超全域變數用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!