09 Php学习:超级全局变量

news2024/11/15 10:17:49

超级全局变量

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.coloradmin.cn/o/1596902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

javaee初阶———多线程(三)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程专题第三篇,关于线程安全方面的内容 如果有不足的或者错误的请您指出! 目录 八、线程安全问题(重点)1.一个典型的线程不安全的例子2.出现线程不安全的原因3.解决线程不安…

【Entity Framework】聊一聊EF中继承关系

【Entity Framework】聊一聊EF中继承关系 文章目录 【Entity Framework】聊一聊EF中继承关系一、概述二、实体类型层次结构映射三、每个层次结构一张表和鉴别器配置四、共享列五、每个类型一张表配置六、每个具体类型一张表配置七、TPC数据库架构八、总结 一、概述 Entity Fra…

高清4路HDMI编码器JR-3214HD

产品简介&#xff1a; JR-3214HD四路高清HDMI编码器是专业的高清音视频编码产品&#xff0c;该产品具有支持4路高清HDMI音视频采集功能&#xff0c;4路3.5MM独立外接音频输入&#xff0c;编码输出双码流H.264格式&#xff0c;音频MP3/AAC格式。编码码率可调&#xff0c;画面质…

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

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

【数据结构】【C++】AVL树的模拟实现(插入、判断、旋转)

文章目录 1 概念2 实现2.1 AVL树结点的定义2.2 AVL树的插入2.2.1 AVL树的插入规则2.2.2 旋转2.2.2.1 左单旋2.2.2.2 右单旋2.2.2.3 左右双旋2.2.2.4 右左双旋 2.2.3 总结 3 平衡判断4 删除5 源码 1 概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二…

软件测试/测试开发丨接口测试学习笔记分享

一、Mock 测试 1、Mock 测试的场景 前后端数据交互第三方系统数据交互硬件设备解耦 2、Mock 测试的价值与意义 不依赖第三方数据节省工作量节省联调 3、Mock 核心要素 匹配规则&#xff1a;mock的接口&#xff0c;改哪些接口&#xff0c;接口哪里的数据模拟响应 4、mock实…

【每日刷题】Day15

【每日刷题】Day15 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; 目录 1. 141. 环形链表 - 力扣&#xff08;LeetCode&#xff09; 2. 142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 3. 143. 重…

基于Python的微博舆论分析,微博评论情感分析可视化系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

IDEA 本地库引入了依赖但编译时找不到

在使用 IDEA 开发 Maven 项目的过程中&#xff0c;有时会遇到本地库引入了依赖&#xff0c;但编译时报找不到这个依赖&#xff0c;可以使用命令处理。 打开 Terminal。 执行清理命令。 mvn clean install -Dmaven.test.skiptrue执行更新命令。 mvn -U idea:idea

YOLO-World——S

文章目录 Abstract成果 MethodPre-training Formulation: Region-Text PairsModel ArchitectureYOLO DetectorText EncoderText Contrastive HeadTraining with Online VocabularyInference with Offline Vocabulary Re-parameterizable Vision-Language PANText-guided CSPLay…

string类——常用函数模拟(C++)

本篇中&#xff0c;将会详细的介绍 Cpp 中 string 的使用&#xff0c;以及 string 类常用函数的模拟实现。对于 string 的内置函数来说&#xff0c;存在很多很冗余的用法&#xff0c;很多函数都有很多种用法&#xff0c;本篇将会讲解常用内置函数的常用用法&#xff0c;模拟函数…

Pytest小技巧:高效获取自动化测试结果

自动化测试用例在执行完成后&#xff0c;我们想要很清楚的查看到测试用例的执行结果&#xff0c;我们可以通过Pytest中的Hooks来进行获取吗&#xff1f; 其中Pytest中存在多个Hooks的函数&#xff0c;小编今天先简单介绍其中一种&#xff0c;通过pytest_runtest_makereport 获…

若依vue中关于字典的使用

文章目录 字典管理页面列表点击某个字典类型展示具体字典数据修改某一条字典数据 字典的应用一般用于select多选框中代码实现根据字典Dict的value获取Label&#xff0c;类似于通过key获得value 源码解析 字典管理页面 列表 点击某个字典类型展示具体字典数据 修改某一条字典数…

04_UART串口发送数据

1.配置芯片&#xff0c;如果PA9,PA10的UART引脚被占用&#xff0c;会自动进行重映射 2.代码 int main(void) {uint8_t temp[]"test";/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*…

windows的jar包开机自启动【搬代码】

感觉最方便的就是放到启动项目里操作步骤 winR 输入&#xff1a;shell:startup回车或点击确定 3.将自己jar包右键创建快捷方式 4.然后放进去 5.重启电脑&#xff0c;浏览器输入网址&#xff0c;就可以看到重启成功了 另外一个就是放入.exe文件的快捷方式 首先&#xff0c;…

C语言洛谷题目分享(9)奇怪的电梯

目录 1.前言 2.题目&#xff1a;奇怪的电梯 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.说明 6.题解 3.小结 1.前言 哈喽大家好啊&#xff0c;前一段时间小编去备战蓝桥杯所以博客的更新就暂停了几天&#xff0c;今天继续为大家带来题解分享&#xff0c;希望大…

网络管理实验二、SNMP服务与常用的网管命令

1 常用的网管命令 1.1 网络状态监视命令 包括以下命令&#xff1a;Ipconfig、ping、nslookup、dig、host ipconfig 作用&#xff1a;用来显示本机所有网卡的基本信息&#xff08;IP、掩码、网关、工作状态&#xff09;&#xff1b;用法&#xff1a;ipconfig展示&#xff1a;…

Python的国际化和本地化【第162篇—国际化和本地化】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 随着全球化的发展&#xff0c;多语言支持在软件开发中变得越来越重要。Python作为一种流行的…

软件架构静态演化

1.静态演化需求 软件架构静态演化的需求是广泛存在的&#xff0c;可以归结为两个方面。 &#xff08;1&#xff09;设计时演化需求。在架构开发和实现过程中对原有架构进行调整&#xff0c;保证软件实现与架构的一致性以及软件开发过程的顺利进行。 &#xff08;2&#xff09;运…