PHP 之超级全局变量

  • 参考菜鸟教程,并经过自己亲手实验,记录PHP的几个超级全局变量

  • 所谓超级全局变量 ,你可以理解为在一个脚本里面的全部代码里面都可以使用的变量。

  • $GLOBALS

    $GLOBALS  是 php 的一个超级全局变量组,在PHP脚本中的全部作用域都可以访问
    $GLOBALS 是一个包含了全部变量的全局组合数组,变量的名字就是  $GLOBAL 的键值。
    你可以理解为 使用了 $GLOBALS  就可以使用这个脚本里面的任何一个任何地方的变量。
    例子如下
   <!doctype html>
    <html>
    
    <body>
    
    <?php
    $a = 55;
    $b = 66;
    
    function add_test()
    {
        $GLOBALS['c'] = $GLOBALS['a'] + $GLOBALS['b'];
    }
    
    add_test();
    echo $c;
    
    ?>
    
    </body>
    
    </html>
![](http://images2017.cnblogs.com/blog/991711/201711/991711-20171101150641716-1368246906.png)
  • $_SERVER 超级全局变量

    $_SERVER 是一个包含比如 头信息, 脚本路径,名称各种属性的超级全局变量,这个数组由 web 服务器创建
    $_SERVER    有一些常用的键值,如下:

    $_SERVER['PHP_SELF']    表示的是当前执行执行脚本的名字, 比如说当前是 index.php , 那么这个值就是 index.php
    $_SERVER['GATEWAY_INTERFACE']    表示服务器所使用的  CGI 规范的版本
    $_SERVER['SERVER_ADDR']    当前运行脚本所在的服务器的 IP 地址。
    $_SERVER['SERVER_NAME']    当前运行脚本所在的服务器的主机名
    $_SERVER['SERVER_SOFTWARE']    服务器标识字符串,在响应请求时的头信息中给出,如Apache/2.2.24
    $_SERVER['SERVER_PROTOCOL']    请示页面时通信协议的名称和版本, 如: HTTP/1.0
    $_SERVER['REQUEST_METHOD']      访问页面使用的请求方法, 例如:"GET"   "HEAD", "POST"  , "PUT"
    $_SERVER['REQUEST_TIME']    请求开始时的时间戳, 如  1377687499
    $_SERVER['QUERY_STRING']    query string  (查询字符串),  如果有的话,通过他进行页面访问
    $_SERVER['HTTP_ACCEPT']       当前请求头中  Accept  项中的内容, 如果存在的话。
    $_SERVER['HTTP_ACCEPT_CHARSET']    当前请求头中  Accept-Charset 项中的内容
    $_SERVER['HTTP_HOST']  当前请求中 Host 项的内容,如果存在的话。
    $_SERVER['REMOTE_ADDR']	浏览当前页面的用户的 IP 地址。
    $_SERVER['REMOTE_HOST']	浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
    $_SERVER['REMOTE_PORT']	用户机器上连接到 Web 服务器所使用的端口号。
    $_SERVER['SCRIPT_FILENAME']	当前执行脚本的绝对路径。
    $_SERVER['SCRIPT_NAME']	包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。

    例子如下:
        <!doctype html>
    <html>

    <body>

    <?php

    echo $_SERVER['PHP_SELF'];
    echo "<br>";
    echo $_SERVER['GATEWAY_INTERFACE'];
    echo "<br>";
    echo $_SERVER['SERVER_ADDR'];
    echo "<br>";
    echo $_SERVER['SERVER_NAME'];
    echo "<br>";
    echo $_SERVER['SERVER_SOFTWARE'];
    echo "<br>";
    echo $_SERVER['SERVER_PROTOCOL'];
    echo "<br>";
    echo $_SERVER['REQUEST_METHOD'];
    echo "<br>";
    echo $_SERVER['REQUEST_TIME'];
    echo "<br>";
    echo $_SERVER['REMOTE_ADDR'];
    echo "<br>";
    echo $_SERVER['REMOTE_HOST'];
    echo "<br>";
    echo $_SERVER['REMOTE_PORT'];
    echo "<br>";
    echo $_SERVER['SCRIPT_NAME'];
    echo "<br>";

    ?>  

    </body>

    </html>
    例子
![](http://images2017.cnblogs.com/blog/991711/201711/991711-20171101162557341-1524850394.png)
  • $_REQUEST

    $_REQUEST  是用于收集  HTML 表单提交的数据。
    例子如下:
        <!doctype html>
    <html>
    
    <body>
    
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?> ">
    name : <input type="text" name="example">
    <input type="submit">
    </form>
    
    <?php
        $name = $_REQUEST['example'];
        echo $name;
    ?>  
    
    </body>
    
    </html>
    效果:
![](http://images2017.cnblogs.com/blog/991711/201711/991711-20171101164958420-1914807539.png)
  • $_POST 功能上基本和 $_REQUEST 基本一样

    例子如下:
    <!doctype html>
    <html>
    
    <body>
    
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    test : <input type="text" name="test1">
    <input type="submit">
    </form>
    
    <?php
        $test1 = $_POST['test1'];
        echo $test1
    ?>
    
    </body>
    
    </html>
    效果:
![](http://images2017.cnblogs.com/blog/991711/201711/991711-20171101170020248-1203073496.png)
  • $_GET 的用法和上面的有类似的地方,如下:

   <!doctype html>
    <html>
    
    <body>
    
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="get">
    name: <input type="text" name="fname">
    age: <input type="text" name="age">
    <input type="submit" value="check">
    </form>
    
    
    <?php
        echo "name: ".$_GET['fname']."<br>";
        echo "age : ".$_GET['age']."<br>";
    ?>
    
    </body>
    
    </html>
    效果:
![](http://images2017.cnblogs.com/blog/991711/201711/991711-20171101180355091-90099534.png)
posted @ 2017-11-01 15:07  陈富林  阅读(196)  评论(0编辑  收藏  举报