PHP基本语法——预定义变量

这篇博客探讨了PHP中的预定义变量,特别是$GLOBAL和$_SERVER。$GLOBALS数组包含全局作用域的所有变量,而$_SERVER数组则提供服务器和执行环境的信息。文章通过示例代码展示了如何使用这两个变量,并提及了$_SERVER数组中的一些关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP基本语法——预定义变量

预定义变量又叫超全局变量,它们不需要提前声明就可以在所有的作用域中使用。通过这些预定义变量可以获取用户会话、用户操作系统的环境和本地操作系统的环境等信息。

注意:预定义变量基本上都是以数组形式存在的。

常用的预定义变量如下所示:

  • $GLOBALS:全局作用域中的全部可用变量;
  • $_SERVER:服务器和执行环境的信息;
  • $_REQUEST:包含了 GET,_GET,GET_POST 和 $_COOKIE 的所有信息;
  • $_POST:通过 POST 方法提交的数据;
  • $_GET:通过 GET 方法提交的数据;
  • $_FILES:通过 POST 方式上传到服务器的文件数据;
  • $_ENV:通过环境方式传递给当前脚本的变量组成的数组;
  • $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量所组成的数组;
  • $_SESSION:当前脚本可用 SESSION 变量组成的数组。

$GLOBALS

$GLOBALS 是一个包含了全局作用域中所有变量的数组,变量的名字就是数组的键。

注意:$GLOBALS 中并不包含函数中的局部变量和静态变量。

示例代码如下:

<?php
    $name = 'C语言中文网';
    $title = 'PHP 预定义变量';
    function demo(){
        static $str = 'PHP 教程';
        $url = 'http://c.biancheng.net/php/';
    }
    echo "<pre>";
    var_dump($GLOBALS);
?>

运行结果如下:

array(7) {
  ["_GET"]=>
  array(0) {
  }
  ["_POST"]=>
  array(0) {
  }
  ["_COOKIE"]=>
  array(0) {
  }
  ["_FILES"]=>
  array(0) {
  }
  ["GLOBALS"]=>
  array(7) {
    ["_GET"]=>
    array(0) {
    }
    ["_POST"]=>
    array(0) {
    }
    ["_COOKIE"]=>
    array(0) {
    }
    ["_FILES"]=>
    array(0) {
    }
    ["GLOBALS"]=>
    *RECURSION*
    ["name"]=>
    string(16) "C语言中文网"
    ["title"]=>
    string(19) "PHP 预定义变量"
  }
  ["name"]=>
  string(16) "C语言中文网"
  ["title"]=>
  string(19) "PHP 预定义变量"
}

$_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的所有项目由 Web 服务器创建。

根据服务器环境的不同,SERVER中的信息也有所不同,我们可以直接使用vardump(_SERVER 中的信息也有所不同,我们可以直接使用 var_dump(SERVER使vardump(_SERVER) 来打印 $_SERVER 中的信息,如下所示:

<?php
    echo "<pre>";
    var_dump($_SERVER);
?>

运行结果如下:

array(42) {
  ["PATH"]=>
  string(347) "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\install\Go\bin;D:\Gopath\bin;D:\install\Git\cmd;D:\install\MinGW\bin;D:\install\phpstudy\Extensions\php\php7.3.4nts;C:\Users\79330\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip\;C:\Users\79330\go\bin"
  ["SYSTEMROOT"]=>
  string(10) "C:\Windows"
  ["REMOTE_PORT"]=>
  string(5) "63839"
  ["SCRIPT_FILENAME"]=>
  string(33) "D:/install/phpstudy/WWW/index.php"
  ["SERVER_ADMIN"]=>
  string(17) "admin@example.com"
  ["CONTEXT_DOCUMENT_ROOT"]=>
  string(23) "D:/install/phpstudy/WWW"
  ["REQUEST_SCHEME"]=>
  string(4) "http"
  ["DOCUMENT_ROOT"]=>
  string(23) "D:/install/phpstudy/WWW"
  ["REMOTE_ADDR"]=>
  string(3) "::1"
  ["SERVER_PORT"]=>
  string(2) "80"
  ["SERVER_ADDR"]=>
  string(3) "::1"
  ["SERVER_NAME"]=>
  string(9) "localhost"
  ["SERVER_SOFTWARE"]=>
  string(73) "Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02"
}

由于 $_SERVER 中包含的信息众多,这里只截取了部分结果,部分变量的含义如下表所示:

变量的名称说明
$_SERVER[‘SERVER_ADDR’]当前程序所在的服务器的 IP 地址
$_SERVER[‘SERVER_NAME’]当前程序所在的服务器的主机名。如果程序运行在虚拟主机上,则该名称由虚拟主机所设置的值决定
$_SERVER[‘REQUERT_METHOD’]访问页面使用的请求方法。如 GET、HEAD、POST、PUT 等
$_SERVER[‘REMOTE_ADDR’]浏览当前页面的用户的 IP 地址
$_SERVER[‘REMOTE_HOST’]浏览当前页面的用户的主机名,反向域名解析基于该用户的 REMOTE_ADDR
$_SERVER[‘REMOTE_PORT’]用户机器上连接到 Web 服务器所使用的端口号
$_SERVER[‘SCRIPT_FILENAME’]当前程序的绝对路径
$_SERVER[‘SERVER_PORT’]当前运行脚本所在的服务器的端口号,默认是 80,如果使用 SSL 安全连接,则这个值是用户设置的 HTTP 端口
$_SERVER[‘SERVER_SIGNATURE’]包含了服务器版本和虚拟主机名的字符串
$_SERVER[‘DOCUMENT_ROOT’]当前运行脚本所在的文档根目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农的时代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值