当前位置: 首页 > news >正文

09 Php学习:超级全局变量

超级全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。
PHP 超级全局变量列表:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

$GLOBALS

$GLOBALS 是 PHP 中的一个超全局数组,用于存储全局作用域中的全部变量,包括全局作用域、函数作用域以及类方法作用域中的变量。这个数组的键是变量名,值是对应变量的值。

解释:

  • $GLOBALS 是一个关联数组,其键是全局变量的名称,值是对应的变量的值。
  • 通过 $GLOBALS 数组,可以在任何地方访问全局作用域中的变量,而不需要使用 global 关键字。

举例:

<?php
$x = 5;
$y = 10;function addition() {$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}addition();
echo $z; // 输出 15
?>

在这个示例中,我们定义了两个全局变量 $x$y。在 addition() 函数内部,我们通过 $GLOBALS 数组访问了这两个全局变量,并将它们相加并存储在 $GLOBALS['z'] 中。最后,我们在全局作用域中输出了 $z 的值,得到了 15。

$_SERVER

$_SERVER 是 PHP 中的一个超全局数组,用于存储服务器和执行环境的信息。这些信息包括 HTTP 请求、服务器信息、运行环境等。$_SERVER 数组的键是服务器提供的变量名,值是相应的信息。

这个数组包含了许多键值对,其中一些常见的键包括:

  • $_SERVER['PHP_SELF']: 当前执行脚本的文件名。
  • $_SERVER['SERVER_NAME']: 当前运行脚本所在服务器的主机名。
  • $_SERVER['HTTP_HOST']: 当前请求的 Host 头部内容。
  • $_SERVER['HTTP_USER_AGENT']: 当前用户代理(浏览器)的字符串。
  • $_SERVER['REMOTE_ADDR']: 客户端的 IP 地址。

这些信息可以用于调试、日志记录、用户识别等用途。下面是一个简单的示例,演示如何使用 $_SERVER 变量:

<?php
echo '当前执行脚本的文件名:' . $_SERVER['PHP_SELF'] . '<br>';
echo '当前运行脚本所在服务器的主机名:' . $_SERVER['SERVER_NAME'] . '<br>';
echo '当前请求的 Host 头部内容:' . $_SERVER['HTTP_HOST'] . '<br>';
echo '当前用户代理(浏览器)的字符串:' . $_SERVER['HTTP_USER_AGENT'] . '<br>';
echo '客户端的 IP 地址:' . $_SERVER['REMOTE_ADDR'] . '<br>';
?>

这个示例将输出当前执行脚本的文件名、服务器主机名、HTTP Host、用户代理和客户端的 IP 地址。

在这里插入图片描述
在这里插入图片描述

$_REQUEST

$_REQUEST 是 PHP 中的一个超全局数组,用于收集 HTML 表单提交的数据,同时也可以接收 URL 参数。它是 $_GET$_POST$_COOKIE 的组合。当页面请求方式是 GET 或 POST 时,$_REQUEST 都可以接收到数据。

这个数组的键是表单元素的名称,值是用户输入的数据。值得注意的是,使用 $_REQUEST 可能会存在安全风险,因为它可以同时接收来自用户 GET 请求和 POST 请求的数据,这可能导致意外的数据混入。

下面是一个简单的示例,演示如何使用 $_REQUEST 获取表单提交的数据:

<!DOCTYPE html>
<html>
<body><form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">Name: <input type="text" name="name"><input type="submit">
</form><?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {// 收集表单数据并输出$name = $_REQUEST['name'];if (empty($name)) {echo "Name is empty";} else {echo "Hello, $name!";}
}
?></body>
</html>

在这个示例中,我们创建了一个简单的表单,用户可以输入名字。当用户提交表单时,PHP 代码部分通过 $_REQUEST['name'] 获取表单中输入的名字,并输出相应的问候语。

$_POST

$_POST 是 PHP 中的一个超全局数组,用于收集通过 POST 方法提交的表单数据。与 $_GET 不同,$_POST 方法将用户输入的数据发送到服务器,但是不会在 URL 中显示这些数据。这使得 $_POST 更适合处理敏感信息或大量数据的提交。

这个数组的键是表单元素的名称,值是用户输入的数据。通过 $_POST,可以方便地从表单中获取用户提交的数据进行处理。

下面是一个简单的示例,演示如何使用 $_POST 获取表单提交的数据:

<!DOCTYPE html>
<html>
<body><form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">Name: <input type="text" name="name"><input type="submit">
</form><?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {// 收集表单数据并输出$name = $_POST['name'];if (empty($name)) {echo "Name is empty";} else {echo "Hello, $name!";}
}
?></body>
</html>

在这个示例中,我们创建了一个简单的表单,用户可以输入名字。当用户提交表单时,PHP 代码部分通过 $_POST['name'] 获取表单中输入的名字,并输出相应的问候语。

$_GET

$_GET 是 PHP 中的一个超全局数组,用于收集通过 URL 参数传递的数据。当用户在浏览器地址栏中输入 URL 或者通过链接跳转页面时,可以使用 $_GET 来获取 URL 中的参数值。

这个数组的键是 URL 参数的名称,值是参数的值。通过 $_GET,可以方便地从 URL 中获取参数传递的数据进行处理。

下面是一个简单的示例,演示如何使用 $_GET 获取 URL 参数的数据:

<!DOCTYPE html>
<html>
<body><?php
// 假定 URL 为 example.com/index.php?name=Alice
if (isset($_GET['name'])) {$name = $_GET['name'];echo "Hello, $name!";
} else {echo "Name parameter is not set";
}
?></body>
</html>

在这个示例中,假设 URL 中包含参数 name=Alice,当用户访问这个页面时,PHP 代码部分使用 $_GET['name'] 获取 URL 中传递的名字参数,并输出相应的问候语。如果 URL 中没有传递参数,则会输出提示信息。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

http://www.lryc.cn/news/339315.html

相关文章:

  • 【Java】SpringBoot快速整合mongoDB
  • UI设计的未来发展
  • 推荐系统学习记录——连续的嵌入空间
  • 【Entity Framework】你要知道EF中功能序列与值转换
  • 顶顶通呼叫中心中间件-SIP分机安全(mod_cti基于FreeSWITCH)
  • CountDownLatch
  • Vue3中的组合式API与选项式API:深入理解与比较
  • 接口自动化测试实战之接口概念、项目简介及测试流程问答!
  • 浏览器工作原理与实践--跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性
  • Ubuntu配置VScode的C++环境
  • 使用Code开发Django_模版和CSS
  • Llama 3下月正式发布,继续开源!
  • 有图片转成PDF文件格式的方法吗?分享图片转成PDF文件的方法
  • 数据结构---绪论
  • matlab 安装 mingw64(6.3.0),OPENEXR
  • 最新彩虹知识付费商城源码 V3.4
  • Redis实现延迟任务的几种方案
  • 一种springboot请求参数校验的实现方案
  • 盒子模型+响应式布局 + 原型链与继承
  • 面试准备 集合 List
  • Java快速入门系列-7(测试与调试)
  • 算法:双指针
  • MySQL一些特殊功能的索引(6/16)
  • ES11-12
  • 【学习笔记】Vue3源码解析:第三部分-获取computed的值;实现computed
  • 顺序表(C语言版)
  • Python高质量函数编写指南
  • 探索Spring、Spring Boot和Spring Cloud的奇妙关系(二)
  • Mysql的事务隔离级别以及事务的四大特性。
  • 人工智能_大模型023_AssistantsAPI_01_OpenAI助手的创建_API的调用_生命周期管理_对话服务创建---人工智能工作笔记0159