首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 入門

PHP 超全局變量完整指南:$GLOBALS、$_SERVER、$_REQUEST、$_POST、$_GET、$_SESSION 等

     編輯:PHP 入門

PHP 超全局變量完整指南:$GLOBALS、$_SERVER、$_REQUEST、$_POST、$_GET、$_SESSION 等

超全局變量 自 PHP 4.1.0 起引入,在腳本全作用域可用,無需 global 聲明即可在函數/類中直接訪問。

九大超全局變量速覽

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

$GLOBALS:全局變量容器

關聯陣列,鍵為變量名,值為變量值。可在函數內修改全局變量:

<?php
$x = 75; $y = 25;
function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }
addition();
echo $z;  // 100
?>

$_SERVER:服務器與執行環境信息

由 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、$_POST、$_GET:表單數據收集

  • $_REQUEST:合併 $_GET、$_POST、$_COOKIE(順序受 request_order 影響)
  • $_POST:method="post" 表單數據
  • $_GET:method="get" 表單數據 + URL 參數

POST 範例

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
<?php echo $_POST['fname']; ?>

GET 範例(含 URL 參數)

<a href="test_get.php?subject=PHP&web=example.com">Test</a>
// test_get.php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];

最佳實踐建議

  1. 優先使用 $_POST 處理敏感/修改操作,$_GET 用於安全的數據檢索
  2. 絕不直接信任超全局變量數據,必須驗證/淨化(參考 filter_input())
  3. $_SESSION 需先 session_start(),用於跨請求保持用戶狀態
  4. $_FILES 處理文件上傳,注意 enctype="multipart/form-data"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved