萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 設定檔 php.ini 核心指令詳細解析(三):資料處理與變數註冊機制

變數處理順序:variables_order

variables_order = "EGPCS" 定義 PHP 註冊變數的優先順序:

  • E - Environment(環境變數)
  • G - GET(查詢字串)
  • P - POST(表單資料)
  • C - Cookie
  • S - Server/Built-in(伺服器內建)

從左至右處理,後者覆蓋前者。常見簡寫 GPC 代表 GET/POST/Cookie。

全域變數註冊:register_globals

register_globals = On 決定是否將 EGPCS 變數自動註冊為全域變數(如 $var 直接可用)。安全建議: 設為 Off 避免使用者輸入汙染全域命名空間,改用 $HTTP_*_VARS[] 陣列(需 track_vars = On)存取。

命令列參數:register_argc_argv

register_argc_argv = On 啟用 $argc(參數計數)與 $argv(參數陣列),包含 GET 方式傳入資料。若不使用 CLI 模式,建議關閉以提升效能。

變數追蹤:track_vars

track_vars = On 啟用 $HTTP_*_VARS[] 超全域陣列($HTTP_GET_VARS、$HTTP_POST_VARS、$HTTP_COOKIE_VARS 等),PHP 4.0.3 後預設開啟。

最佳實務建議

  • 生產環境:register_globals = Off、track_vars = On
  • 僅 CLI 腳本需 register_argc_argv = On
  • 明確使用 $_GET、$_POST、$_COOKIE、$_SERVER 超全域陣列(PHP 4.1.0+)
copyright © 萬盛學電腦網 all rights reserved