zoukankan      html  css  js  c++  java
  • PHP超全局变量

    超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。

    超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量。

    PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

    这些超全局变量是:

    一、$GLOBALS

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

    一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

    <?php
    
    function test(){
        $foo = "local variable";
        echo '$foo in global scope:'.$GLOBALS['foo'].'<br />';//$foo in global scope:Example content
        echo '$foo in current scope:'.$foo.'<br />';//$foo in current scope:local variable
        $GLOBALS['foo'] = '1111';
        echo '$foo in global scope:'.$GLOBALS['foo'].'<br />';//$foo in global scope:1111
    }
    $foo = "Example content";
    test();
    echo $foo.'<br />';//1111

     

    <?php 
    
    $a = 1;
    $b = 2;
    function sum(){
        $GLOBALS['a'] = $GLOBALS['a'] + $GLOBALS['b'];//定义变量时每个都要定义
    }
    sum();
    echo $a.'---'.$b.'<br />';//3---2

    global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。但是在函数体内定义的global变量,函数体内可以使用,在函数体外定义的global变量不能在函数体内使用,具体看下面示例。

    (1)在函数体内定义global变量,函数体内可以使用。

    <?php
    
    $a = 1;
    $b = 2;
    function sum(){
        global $a,$b;//在函数内声明为全局变量
        $b = $a + $b;
    }
    sum();
    echo $a.'---'.$b.'<br />';//1---3

    (2)在函数体外定义global变量,函数体内不可以使用。

    $a = 1;
    global $a;//在函数体外把$a定义为global变量
    function aa(){
        echo $a;
    }
    aa();//会报错,不能输出变量

    二、$_SERVER

    $_SERVER -- $HTTP_SERVER_VARS [已删除] — 服务器和执行环境信息

     

    $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

    下表列出了您能够在 $_SERVER 中访问的最重要的元素:

    元素/代码描述
    $_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。
    $_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'] 返回访问页面使用的请求方法(例如 POST)。
    $_SERVER['REQUEST_TIME'] 返回请求开始时的时间戳(例如 1577687494)。
    $_SERVER['QUERY_STRING'] 返回查询字符串,如果是通过查询字符串访问此页面。
    $_SERVER['HTTP_ACCEPT'] 返回来自当前请求的请求头。
    $_SERVER['HTTP_ACCEPT_CHARSET'] 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
    $_SERVER['HTTP_HOST'] 返回来自当前请求的 Host 头。
    $_SERVER['HTTP_REFERER'] 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
    $_SERVER['HTTPS'] 是否通过安全 HTTP 协议查询脚本。
    $_SERVER['REMOTE_ADDR'] 返回浏览当前页面的用户的 IP 地址。
    $_SERVER['REMOTE_HOST'] 返回浏览当前页面的用户的主机名。
    $_SERVER['REMOTE_PORT'] 返回用户机器上连接到 Web 服务器所使用的端口号。
    $_SERVER['SCRIPT_FILENAME'] 返回当前执行脚本的绝对路径。
    $_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
    $_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 “80”。
    $_SERVER['SERVER_SIGNATURE'] 返回服务器版本和虚拟主机名。
    $_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。
    $_SERVER['SCRIPT_NAME'] 返回当前脚本的路径。
    $_SERVER['SCRIPT_URI'] 返回当前页面的 URI。
    <?php
    
    echo '<pre>';
    print_r($_SERVER);

    三、$_GET

    $_GET -- $HTTP_GET_VARS [已弃用] — HTTP GET 变量

     

    通过 URL 参数传递给当前脚本的变量的数组。

    四、$_POST

    $_POST -- $HTTP_POST_VARS [已弃用] — HTTP POST 变量

     

    当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。

    五、$_FILES

    $_FILES -- $HTTP_POST_FILES [已弃用] — HTTP 文件上传变量

     

    通过 HTTP POST 方式上传到当前脚本的项目的数组。

    六、$_COOKIE

    $_COOKIE -- $HTTP_COOKIE_VARS [已弃用] — HTTP Cookies

     

    通过 HTTP Cookies 方式传递给当前脚本的变量的数组。

    七、$_SESSION

    $_SESSION -- $HTTP_SESSION_VARS [已弃用] — Session 变量

     

    当前脚本可用 SESSION 变量的数组

    八、$_REQUEST

    $_REQUEST — HTTP Request 变量

    九、$_ENV

    $_ENV -- $HTTP_ENV_VARS [已弃用] — 环境变量

    通过环境方式传递给当前脚本的变量的数组。

     

  • 相关阅读:
    java中会存在内存泄漏吗,请简单描述?
    垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
    SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?
    SpringMVC怎么样设定重定向和转发的?
    Spring MVC的异常处理 ?
    如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
    Spring是什么?
    SpringMvc用什么对象从后台向前台传递数据的?
    SpringMvc中函数的返回值是什么?
    BeanFactory和ApplicationContext有什么区别?
  • 原文地址:https://www.cnblogs.com/zhouguowei/p/9266690.html
Copyright © 2011-2022 走看看