当前位置: 首页 > 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 中没有传递参数,则会输出提示信息。

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

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

在这里插入图片描述

相关文章:

09 Php学习:超级全局变量

超级全局变量 PHP中预定义了几个超级全局变量&#xff08;superglobals&#xff09; &#xff0c;这意味着它们在一个脚本的全部作用域中都可用。 PHP 超级全局变量列表: $GLOBALS$_SERVER$_REQUEST$_POST$_GET$_FILES$_ENV$_COOKIE$_SESSION $GLOBALS $GLOBALS 是 PHP 中的…...

【Java】SpringBoot快速整合mongoDB

目录 1.什么是mongoDB&#xff1f; 2.Docker安装mongoDB 3.SpringBoot整合mongoDB步骤 4.验证 1.什么是mongoDB&#xff1f; MongoDB是一种非关系型数据库&#xff0c;被广泛用于大型数据存储和分布式系统的构建。MongoDB支持的数据模型比传统的关系型数据库更加灵活&#x…...

UI设计的未来发展

UI 设计的未来发展&#xff0c;实际上是互联网行业未来发展的折射。毕竟&#xff0c;UI 设计始终是互联网行业的一部分&#xff0c;因此在互联网行业未来发展的可能性来看&#xff0c;UI 设计同样会跟随着互联网的部分稳步前进。曾经&#xff0c;在最初的图形化界面出现的时候&…...

推荐系统学习记录——连续的嵌入空间

连续嵌入空间 推荐系统通常会将用户和项目&#xff08;或商品&#xff09;表示为向量或嵌入&#xff08;embeddings&#xff09;&#xff0c;这些向量被映射到一个称为嵌入空间&#xff08;embedding space&#xff09;的数学空间中。在这个空间中&#xff0c;相似的用户或项目…...

【Entity Framework】你要知道EF中功能序列与值转换

【Entity Framework】你要知道EF中功能序列与值转换 文章目录 【Entity Framework】你要知道EF中功能序列与值转换一、序列1.1 基本用法1.2 配置序列设置 二、值转换2.1 配置值转换器2.2 批量配置值转换器2.3 预定义的转换2.4 ValueConverter类2.5 内置转换器 三、应用3.1 简单…...

顶顶通呼叫中心中间件-SIP分机安全(mod_cti基于FreeSWITCH)

介绍 运行在公网的FreeSWITCH服务器&#xff0c;每天都会接收到很多恶意的呼叫请求和注册请求&#xff0c;尝试盗打电话。合理的配置可以防止电话给倒打&#xff0c;但是每天大量的攻击&#xff0c;会让FS产生很多日志&#xff0c;降低FreeSWITCH的处理能力&#xff0c;cti模块…...

CountDownLatch

CountDownLatch 翻译&#xff1a; 倒计时锁存器&#xff0c;&#xff0c;&#xff0c;&#xff0c;count计数&#xff0c;down停止&#xff0c;Latch锁 解释&#xff1a; 允许一个或多个线程等待&#xff0c;直到在其他线程中执行的一组操作完成的同步辅助不懂&#xff1f;…...

Vue3中的组合式API与选项式API:深入理解与比较

一、引言 Vue.js&#xff0c;作为前端开发的热门框架之一&#xff0c;以其轻量级、易上手、灵活性强等特点深受开发者的喜爱。随着Vue3的发布&#xff0c;其引入了全新的组合式API&#xff08;Composition API&#xff09;&#xff0c;这为Vue.js的开发方式带来了新的变革。本…...

接口自动化测试实战之接口概念、项目简介及测试流程问答!

一、前言 这篇文章呢主要是想讲实战方面的内容&#xff0c;本文主要会讲解接口测试中的一些接口概念&#xff0c;流程等方面的问答&#xff0c;同时还会介绍一下即将要进行测试的项目&#xff0c;这里呢我就不多说废话了&#xff0c;直接进入主题吧。 二、接口概念 接口测试&…...

浏览器工作原理与实践--跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性

通过上篇文章的介绍&#xff0c;我们知道了同源策略可以隔离各个站点之间的DOM交互、页面数据和网络通信&#xff0c;虽然严格的同源策略会带来更多的安全&#xff0c;但是也束缚了Web。这就需要在安全和自由之间找到一个平衡点&#xff0c;所以我们默认页面中可以引用任意第三…...

Ubuntu配置VScode的C++环境

在Ubuntu系统下配置C环境&#xff0c;并运行helloworld 1. 下载VScode 我这里使用的是星火应用商店&#xff0c;在商店里面可以直接下载安装 http://spark-app.store/ 2.创建文件夹 3.启动VScode并打开该文件夹 4.安装以下几个扩展 PS&#xff1a;Clang这个插件别安装&…...

使用Code开发Django_模版和CSS

转到定义 和 查看定义 在使用Django或任何其他库的过程中,我们可能需要检查这些库中的代码。VS Code提供了两个方便的命令,可以直接导航到任何代码中的类和其他对象的定义: 转到定义 在Python开发环境中,我们可以轻松地对函数、类或者其他导入模块中的成员使用“Go to Def…...

Llama 3下月正式发布,继续开源!

4月10日&#xff0c;Techcrunch消息&#xff0c;Meta在本周伦敦举办的一场活动中确定&#xff0c;下个月将正式发布Llama 3并且继续开源。 Meta全球事务总裁Nick Clegg表示&#xff0c;我们希望在下个月&#xff0c;甚至更短的时间内&#xff0c;正式推出新一代基础模型Llama …...

有图片转成PDF文件格式的方法吗?分享图片转成PDF文件的方法

将图片转换为PDF文件是一个相对简单的过程&#xff0c;但也需要一定的步骤和注意事项。下面&#xff0c;我将详细介绍如何将图片转换为PDF文件&#xff0c;包括所需的工具、步骤以及可能遇到的问题和解决方案。 首先&#xff0c;我们需要一个能够将图片转换为PDF文件的工具。市…...

数据结构---绪论

一、绪论&#xff1a; 1.什么是数据&#xff1f; 数据是信息的载体&#xff0c;是描述客观事物属性的数&#xff0c;字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 数据元素--描述一个个体 数据元素&#xff0c;数据项&am…...

matlab 安装 mingw64(6.3.0),OPENEXR

matlab安装openexr 1. matlab版本与对应的mingw版本选择2. mingw&#xff08;6.3.0&#xff09;下载地址&#xff1a;3. matlab2020a配置mingw&#xff08;6.3.0&#xff09;流程“4. matlab 安装openexr方法一&#xff1a;更新matlab版本方法二&#xff1a;其他博文方法方法三…...

最新彩虹知识付费商城源码 V3.4

最新彩虹知识付费商城源码 V3.4&#xff0c;支持二级分类&#xff0c;多级分销&#xff0c;秒杀&#xff0c;砍价&#xff0c;团购&#xff0c;首页继续浏览&#xff0c;分站个人虚拟余额自定义&#xff0c;最新批量对接&#xff0c;批量下载图片&#xff0c;批量替换标题&…...

Redis实现延迟任务的几种方案

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1.前言 2.Redis如何实现延迟任务&#xff1f; 3.代码实现 3.1. 过期键通知事…...

一种springboot请求参数校验的实现方案

一、前提引入 很多时候,springboot提供的Restful-api需要根据业务需要进行参数校验,相应的,基于各位码友的习惯,各有各的实现方式,可谓是八仙过海各显神通。 二、常见方案 2.1 一种最原始的方法 通过if语句,对特定参数进行校验 if(null == name){return "name …...

盒子模型+响应式布局 + 原型链与继承

盒子模型 是什么 css布局基础,规定了元素在页面上如何呈现,以及元素之间的空间关系 由content paddingbordermargin四部分组成 为什么 盒子模型分为 标准盒子模型: 元素的宽度与高度 只包括content IE盒子模型: 元素的宽度与高度 包括content,padding,border 在实际操作中…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器

从本章节开始&#xff0c;进入到函数有多个参数的情况&#xff0c;前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参&#xff0c;ECX是整型的第一个参数的寄存器&#xff0c;那么多个参数的情况下函数如何传参&#xff0c;下面展开介绍参数为整型时候的几种情…...

深入理解 C++ 左值右值、std::move 与函数重载中的参数传递

在 C 编程中&#xff0c;左值和右值的概念以及std::move的使用&#xff0c;常常让开发者感到困惑。特别是在函数重载场景下&#xff0c;如何合理利用这些特性来优化代码性能、确保语义正确&#xff0c;更是一个值得深入探讨的话题。 在开始之前&#xff0c;先提出几个问题&…...