当前位置: 首页 > 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 在实际操作中…...

面试准备 集合 List

ArrayList 底层实现 使用Object[] 动态数组进行存储 特性 支持存储null值非线程安全支持快速访问 初始化方法 无参–返回一个空的列表&#xff08;DEFAULTCAPACITY_EMPTY_ELEMENTDATA&#xff09;指定初始容量&#xff1a; new ArrayList(20);指定集合 new ArrayList(col…...

Java快速入门系列-7(测试与调试)

第七章:测试与调试 第7章:测试与调试7.1 单元测试(JUnit)7.1.1 为什么要进行单元测试7.1.2 JUnit基础7.1.3 断言7.1.4 测试套件7.2 集成测试与系统测试7.2.1 集成测试7.2.2 系统测试7.3 调试技巧与工具7.3.1 断点7.3.2 单步执行7.3.3 变量检查7.3.4 条件断点7.3.5 日志记录…...

算法:双指针

算法&#xff1a;双指针 双指针快慢指针对撞指针总结 双指针 LeetCode 283.移动零 以上题目要求我们把所有0移动到数组的末尾&#xff0c;也就是说&#xff0c;我们要把数组转化为以下状态&#xff1a; [ 非0区域 ] [ 0区域 ] 像这种把一个数组划分为多个区域的题型&#xff0…...

MySQL一些特殊功能的索引(6/16)

特殊功能性索引 B-Tree索引&#xff1a; InnoDB的默认索引类型&#xff0c;适用于多种查询操作。 可以用于等值查询、范围查询和索引列的组合查询。 创建B-Tree索引的示例&#xff1a; CREATE INDEX index_name ON table_name (column1, column2);全文索引&#xff08;FULLTEX…...

ES11-12

1-ES11-Promise.allSettled Promise.allSettled0)方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组,每个对象表示对应的promise结果。 简单来说不管成功失败都会调用.then()&#xff0c;然后处理成功和失败的结果 const promises [ …...

【学习笔记】Vue3源码解析:第三部分-获取computed的值;实现computed

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第三部分-获取computed的值&#xff1b;实现computed&#xff1a;&#xff08;对应课程的第18-21节&#xff09; 第22节&#xff1a;《获取computed的值》 …...

顺序表(C语言版)

前言&#xff1a;本篇文章我们来详细的讲解一下顺序的有关知识&#xff0c;这篇文章中博主会以C语言的方式实现顺序表。以及用顺序表去实现通讯录的代码操作。 目录 一.顺序表的概念 二.顺序表的分类 1.静态顺序表 三.动态顺序表的实现 1.顺序表的初始化 2.顺序表的尾插…...

Python高质量函数编写指南

The Ultimate Guide to Writing Functions 1.视频 https://www.youtube.com/watch?vyatgY4NpZXE 2.代码 https://github.com/ArjanCodes/2022-funcguide Python高质量函数编写指南 1. 一次做好一件事 from dataclasses import dataclass from datetime import datetimedatacl…...

探索Spring、Spring Boot和Spring Cloud的奇妙关系(二)

本系列文章简介&#xff1a; 在当今快节奏、高竞争的软件开发世界中&#xff0c;构建可靠、高效的应用程序是至关重要的。而Spring框架一直以来都是业界领先的Java开发框架之一&#xff0c;帮助开发者简化了复杂的任务&#xff0c;并提供了丰富的功能和强大的支持。 然而&#…...

Mysql的事务隔离级别以及事务的四大特性。

MySQL 的事务隔离级别是数据库管理系统中的一个重要概念&#xff0c;它决定了事务如何隔离和影响其他并发事务。MySQL 支持四种事务隔离级别&#xff0c;分别是&#xff1a;读未提交&#xff08;READ UNCOMMITTED&#xff09;、读已提交&#xff08;READ COMMITTED&#xff09;…...

dw做网站小技巧/免费网络推广软件

Educational Codeforces Round 110 (Rated for Div. 2) A. Fair Playoff 题目入口 思路 找出最大和次大模拟即可 代码 #include<bits/stdc.h> using namespace std; int a[5]; int main() {int t;cin>>t;while(t--){int maxx-1,max2-1;for(int i1;i<4;i){c…...

越南人一般去哪个网站做贸易/谷歌seo一个月费用需要2万吗

写这个简单的正则匹配呢&#xff0c;主要是让大家可以参考取自己文本中想要的东西&#xff0c;比如我现在的文本内容是这样的 我想要把<Sentiment>和</Sentiment>之间的neg和pos提取出来&#xff0c;文件基本操作参考上一篇python中使用文件的读取和简单正则使用&a…...

如何用运行打开wordpress/东莞营销网站建设优化

作为一名资深的Android 开发者。从2017年下半年开始&#xff0c;就听到各种言论&#xff0c;例如“Android 开发凉凉”、“移动端开发没出路了赶紧转行”、“要被XXX 替代了” 等等&#xff0c;充分反映了大家焦虑的心态。 移动端开发真的要凉凉了吗&#xff1f;也经常有粉丝私…...

台湾做的h游戏下载网站/百度推广区域代理

企业管理培训&#xff1a;如何提升中层管理者的执行力&#xff1f;企业中层管理都懂得一个道理“高效执行力是企业做大做强的核心武器&#xff0c;没有好的执行力&#xff0c;再好的决策&#xff0c;也只是一个良好的愿望”&#xff0c;如何提升企业中层管理者的执行力&#xf…...

网站设计hb软件/网页搭建

MBR分区表模式&#xff1a;MBR分区的分区表保存在硬盘的第一个扇区&#xff0c;而且只有64字节&#xff0c;所以最多只能有四个表项。也就是说&#xff0c;我们只能把硬盘分为4主分区&#xff0c;或者分成小于等于3个主分区再加一个扩展分区。扩展分区又可以分为多个逻辑分区。…...

wordpress点击页面跳转/品牌网络营销策划方案

本文作者范欣欣&#xff0c;其就职于网易杭州研究院后台技术中心数据库技术组&#xff0c;从事HBase开发、运维&#xff0c;对HBase相关技术有浓厚的兴趣。 任何系统都会有各种各样的问题&#xff0c;有些是系统本身设计问题&#xff0c;有些却是使用姿势问题。HBase也一样&…...