超全局變量 自 PHP 4.1.0 起引入,在腳本全作用域可用,無需 global 聲明即可在函數/類中直接訪問。
$GLOBALS$_SERVER$_REQUEST$_POST$_GET$_FILES$_ENV$_COOKIE$_SESSION關聯陣列,鍵為變量名,值為變量值。可在函數內修改全局變量:
<?php
$x = 75; $y = 25;
function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }
addition();
echo $z; // 100
?>
由 Web 服務器創建,包含頭信息、路徑、腳本位置等。常用鍵:
| 鍵 | 說明 |
|---|---|
PHP_SELF | 當前執行腳本文件名(相對文檔根目錄) |
SERVER_NAME | 服務器主機名 |
HTTP_HOST | 請求頭 Host 值 |
HTTP_REFERER | 來源頁面 URL(不可完全信任) |
HTTP_USER_AGENT | 用戶瀏覽器標識 |
REQUEST_METHOD | 請求方法:GET/POST/PUT 等 |
QUERY_STRING | 查詢字符串 |
REMOTE_ADDR | 客戶端 IP |
SCRIPT_FILENAME | 腳本絕對路徑 |
$_REQUEST:合併 $_GET、$_POST、$_COOKIE(順序受 request_order 影響)$_POST:method="post" 表單數據$_GET:method="get" 表單數據 + URL 參數<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php echo $_POST['fname']; ?>
<a href="test_get.php?subject=PHP&web=example.com">Test</a>
// test_get.php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
$_POST 處理敏感/修改操作,$_GET 用於安全的數據檢索filter_input())$_SESSION 需先 session_start(),用於跨請求保持用戶狀態$_FILES 處理文件上傳,注意 enctype="multipart/form-data"