PHP超級全域變數數組(Super Global Array),又稱為PHP預定義數組,是由PHP引擎內建的,不需要開發人員重新定義。 在PHP指令碼運行時,PHP會自動將一些資料放在超級全域數組中。
PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個指令碼的全部範圍中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。
php超級全域變數列表:
$_GET[] 獲得以GET方法提交的變數數組
$_POST[] 獲得以POST方法提交的變數數組
$_COOKIE[] 擷取和設定當前網站的Cookie標識
$_SESSION[] 取得目前使用者訪問的唯一標識,以數組形式體現,如sessionid以及自訂session資料
$_ENV[] 當前php環境變數數組
$_SERVER[] 當前php伺服器變數數組
$_FILES[] 上傳檔案時提交到當前指令碼的參數值,以數組形式體現
$_REQUEST[] 包含當前指令碼提交的全部請求,$_GET、$_POST、$_COOKIE的所有動作
$GLOBALS[] 包含正在執行指令碼所有超級全域變數的引用內容
index.php:
<?php /** * 超全域數組/超全域變數 * PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個指令碼的全部範圍中都可用。 * 在函數或方法中無需執行 global $variable; 就可以訪問它們。 * 這些超全域變數是: $_GLOBALS Global變數 $_SERVER 伺服器變數 $_REQUEST request變數 $_POST HTTP POST變數 $_GET HTTP GET變數 $_FILES HTTP檔案上傳變數 $_ENV 環境變數 $_COOKIE HTTP Cookies $_SESSION Session變數 */ echo getip(); echo "<br>"; echo getip2(); echo "<br>"; /** * 遍曆$_SERVER數組 */ foreach ($_SERVER as $key => $value){ echo "{$key} => {$value} <br>"; } /** * 伺服器IP的函數--筆試0分的寫法 */ function getip(){ return $_SERVER['REMOTE_ADDR']; } /** * 伺服器IP的函數--正確寫法 */ function getip2(){ if (!empty($_SERVER['HTTP_CLIENT_IP'])){ return $_SERVER['HTTP_CLIENT_IP']; }elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ return $_SERVER['HTTP_X_FORWARDED_FOR']; }elseif (!empty($_SERVER['REMOTE_ADDR'])){ return $_SERVER['REMOTE_ADDR']; }else{ return '未知IP'; } } ?> /** * GET */ <br> <a href="demo.php?action=add&id=5&name=admin">測試頁面</a><br> /** * POST * nickname[]下標會自增,跟數組沒有區別 */ <br> <form action="demo.php?nick=www&psw=yyy" method="post"> nickname:<input type="text" name="nickname[]"/><br> nickname:<input type="text" name="nickname[]"/><br> nickname:<input type="text" name="nickname[]"/><br> nickname:<input type="text" name="nickname[9]"/><br> nickname:<input type="text" name="nickname[]"/><br> nickname:<input type="text" name="nickname[x]"/><br> nickname:<input type="text" name="nickname[]"/><br> username:<input type="text" name="name"/><br> age:<input type="text" name="age"/><br> sex:<input type="text" name="sex"/><br> <input type="submit" name="sub" value="提交"> </form><br><?php /** * $_SESSION * * Session 函數: * http://www.php.cn/ * * Session 開始、儲存、終結: * http://www.php.cn/ */ echo '---------- $_SESSION ----------<br>'; session_start(); // 啟動新會話或者重用現有會話 $_SESSION['name']="hello"; print_r($_SESSION); // 列印結果:Array ( [name] => hello ) session_unset(); // 釋放所有的會話變數 session_destroy(); // 銷毀當前會話中的全部資料, 但是不會重設當前會話所關聯的全域變數, 也不會重設會話 cookie。 // 如果需要再次使用會話變數, 必須重新調用 session_start() 函數 session_write_close(); // 結束當前會話並儲存會話資料 setcookie(session_name(),'',0,'/'); // session_name — 讀取/設定會話名稱 // setcookie() 函數向用戶端發送一個 HTTP cookie。 session_regenerate_id(true); // 在不修改當前會話中資料的前提下使用新的 ID 替換原有會話 ID echo "<br>"; /** * $GLOBALS 引用全域範圍中可用的全部變數 * 一個包含了全部變數的全域群組合數組。變數的名字就是數組的鍵。 */ echo '---------- $GLOBALS ----------<br>'; echo "<pre>"; print_r($GLOBALS); // 列印以上所有結果 echo "</pre>";
demo.php:(配合index.php使用)
<?php /** * $_GET 只能接get */ print_r($_GET); echo "<br>"; print_r($_GET['action']); echo "<br>"; /** * $_POST 只能接post */ print_r($_POST); echo "<br>"; /** * $_REQUEST 能接get和post * 但是,容易被駭客攻擊,因為什麼都能接 * 所以需要get就用$_GET,需要post就用$_POST * 忽略$_REQUEST的存在 */ print_r($_REQUEST); echo "<br>"; /** * 不確定get還是post * 可以使用下面的寫法 */ $arr = !empty($_POST) ? $_POST : $_GET;
以上就是Android程式員學PHP開發(22)-超全域數組/超全域變數-PhpStorm的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!