PHP超級全局變量


超級全局變量有9個
特點是全局可用!
頁面到處都能訪問到這個變量

 

$_GET獲得的是瀏覽器地址欄過來的數據,或者表單GET方式提交的數據

$_POST獲得的是表單POST方式提交的數據

$_REQUEST默認情況(具體情況要看php.ini的配置)獲得的是既包含POST過來的值,也包含GET方式獲得的值

 如下例子:2222.html上有個表單,提交給2222.php這個文件

<html>
    <head>
        <title>實驗GET_POST的區別</title>
        <meta charset="UTF-8"/>
    </head>
    <body>
        <!--本文件2222.html提交數據-->
        <form action="2222.php?id=5678" method="post">
            <input type="text" name="username" value="" />
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

 

 1 <?php
 2 header("Content-type:text/html;charset=UTF-8");
 3 echo '<pre>';
 4 
 5     //2222.php 接收數據並顯示出來
 6     print_r($_GET);
 7     print_r($_POST);
 8     print_r($_REQUEST);
 9 
10 echo '<pre>';
11 ?>

  

最終的結果,可以看到,$_REQUEST這個數組是$_GET和$_POST合並起來的

如果讓get和post中有重名的呢?

修改2222.html中<form action="2222.php?id=5678" method="post">這句,改為<form action="2222.php?id=5678&username=李四" method="post">

再提交會發生什么呢?

如下,找到php配置文件,搜索 request_order 

修改為PG,保存,重啟apache,實驗一下,就相反了,不細說。

 

$_ENV

打印一下$_ENV,print_r($_ENV); 看看出來的是什么?

發現,沒有反應!空白。原來,考慮到信息安全問題,php的配置文件php.ini中,variables_order控制着$_ENV的顯示

$_ENV里面是操作系統呀什么的這些信息

 

$_SERVER 打印出來如下:

Array
(
    [HTTP_HOST] => localhost
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_CONNECTION] => keep-alive
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_CACHE_CONTROL] => max-age=0
    [PATH] => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;
    [SystemRoot] => C:\Windows
    [COMSPEC] => C:\Windows\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    [WINDIR] => C:\Windows
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => ::1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => ::1
    [DOCUMENT_ROOT] => E:/xxxx
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => E:/xxxx
    [SERVER_ADMIN] => admin@phpStudy.net
    [SCRIPT_FILENAME] => E:/xxxx/2222.php
    [REMOTE_PORT] => 2479
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /2222.php
    [SCRIPT_NAME] => /2222.php
    [PHP_SELF] => /2222.php
    [REQUEST_TIME_FLOAT] => 1556588895.594
    [REQUEST_TIME] => 1556588895
)

 

$GLOBALS — 引用全局作用域中可用的全部變量

它就是個快捷方式集合,把在全局作用域中的全部變量(除了$_ENV)都放在里面了。

$aaa = 123456;
print_r($GLOBALS);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM