$_REQUEST數組是PHP中的一個超全局變量,用于存儲來自HTTP請求(GET、POST和Cookie)中的參數。在處理表單提交或者處理Ajax請求時,經常使用$_REQUEST來獲取表單或請求參數。
舉個例子,假設我們有一個登陸頁面,用戶填寫用戶名和密碼后提交表單,我們可以使用$_REQUEST來獲取表單提交的參數。HTML表單如下:
<form action="login.php" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="登陸"> </form>在login.php中,我們使用$_REQUEST來獲取表單參數:
$username = $_REQUEST["username"]; $password = $_REQUEST["password"];這樣就可以獲取用戶填寫的用戶名和密碼了,我們可以對用戶名和密碼進行驗證,如果正確則允許用戶登陸。 需要注意的是,$_REQUEST數組中的元素是依賴于php.ini中配置的request_order參數的。如果request_order為"GP",則$_REQUEST數組中優先獲取GET參數,如果request_order為"CP",則$_REQUEST數組中優先獲取Cookie參數,如果request_order為"GPC"(默認值),則$_REQUEST數組中先獲取GET參數,如果不存在則獲取POST參數,最后獲取Cookie參數。 除了獲取表單或請求參數外,$_REQUEST數組還可以用于向下一個請求傳遞參數,比如說在頁面A中需要訪問頁面B,同時要將一些參數傳遞給頁面B。可以使用$_REQUEST數組來設置參數,如下所示:
//在頁面A中設置參數 $_REQUEST["param1"] = "hello"; $_REQUEST["param2"] = "world"; //在頁面B中獲取參數 $param1 = $_REQUEST["param1"]; $param2 = $_REQUEST["param2"]; echo "參數:$param1 $param2";輸出結果為:"參數:hello world"。 另外需要注意的是,由于$_REQUEST數組包括了GET、POST和Cookie三種參數,如果程序中同時使用了$_GET、$_POST和$_COOKIE來獲取參數,可能會出現重復獲取或者覆蓋的情況,如果沒有明確的需求,建議使用$_REQUEST來獲取參數。 總之,$_REQUEST數組是一個十分實用的超全局變量,可以用于獲取表單或請求參數,也可以用于向下一個請求傳遞參數,使用方便簡單,建議開發者熟練掌握。