程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php9個超全局變量的用法詳解(一)

php9個超全局變量的用法詳解(一)

編輯:關於PHP編程

PHP 中的許多預定義變量都是“超全局的”,這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。

這些超全局變量是:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV 1.先看一下$GLOBALS,它是包含了全部變量的全局組合數組,什麼意思呢,看一個c語言程序
    int main()
    {
          int a = 3;
          void t()
         {
         printf("%d",a);
         }
         t();
         return 0;
    }


    這個程序運行出來肯定是輸出a,很容易理解的嗎,在t()函數裡將a變量輸出 。但看一下php的一個程序:



    這個會輸出的是3嗎?no,no,no那就太天真了,它是什麼都輸出不來的,why???很簡單,因為$a不是全局變量,t()函數裡面區不到它的值,哇~世界黑暗了,怎麼辦??別緊張啦,這個時候就需要我們的$GLOBALS出場了,剛才我說的它是包含了全部變量的全局組合數組可能大家沒聽懂,現在說就應該清楚多了,也就是說通過$GLOBALS就可以在t()函數裡取到$a的值,方法$GLOBAL['$A'],試一下將t()函數內容改成function t(){
    echo $GLOBALS['a'];
    }運行一下,頁面上就會清晰的顯示出$a的值啦。再說一下$GLOBAL的范圍,在你當前頁面和當前頁面require和include 進來的頁面裡的值它都可以取到。還算厲害吧。當然了,也不是萬能的,再看一下這個

    輸出什麼呢???答案是只有5,也就是說$GLOBALS是不能取到其它函數裡面的值的。

    再看第二個$_SERVER,$_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。這個數組中的項目由 Web 服務器創建。不能保證每個服務器都提供全部項目;服務器可能會忽略一些,或者提供一些沒有在這裡列舉出來的項目。從$_SERVER裡面可以提取很多有用的信息,比如$_SERVER['REMOTE_ADDR']可以得到當前用戶的ip,下面我用foreach遍歷整個$_SERVER數組,將其打印。代碼如下:

     $value){
    echo "$key: $value
    \n"; }


    想要看效果又不想或者現在不能寫的可以看這個網址,這是sae服務器server的效果。http://5253.sinaapp.com/blog/server.php我將它上傳到這裡了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved