Android程式員學PHP開發(22)-超全域數組/超全域變數-PhpStorm

來源:互聯網
上載者:User
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)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.