【二十三】php之预定义超全局变量
php提供了九种预定义超全局变量: $_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILE、 $_COOKIE、$_SESSION、 $GLOBALS
1.$_GET
原理图:
基本使用:
- 通过超链接传送消息给服务器(如test.php)
- 通过表单传送信息给服务器(<form action="a.php" method="get">)
- 通过重定向跳转(header:"location:test.php?aaa=**")
test.php
<?php
//urlencode:url编码
$str=urlencode("花花啊");
echo "<a href='a.php?name=huahua&mon=$str'>传送数据</a>";
?>
a.php
<?php
// $_GET返回的是一个数组
echo "<pre>";
echo print_r($_GET);
echo "</pre>";
// 如果想访问数组中指定的数组,可以通过下标名
// urldecode:url解码
echo urldecode($_GET['mon']);
?>
判断是否收到了某个值(empty inset)
// 方式一:
if (empty($_GET['name'])) {
echo "没有";
}else{
echo "收到".$_GET['name'];
}
// 方式二
if (!isset($_GET['name'])) {
echo "没收到";
}else{
echo $_GET['name'];
}
2.$_POST:通过http post方式给服务器传送的信息,会被封装在$_POST超全局数组中
基本用法
- 通过表单传送信息给服务器推荐使用post。有些信息必须使用post,比如上传文件
demo2.php
<!DOCTYPE html>
<html>
<head>
<title>zhuce</title>
</head>
<body>
<h1>用户注册</h1>
<form action='b.php' method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
性别:<input type="radio" name="sex" value="man"/>男
<input type="radio" name="sex" value="woman" checked />女<br/>
<!-- 注意:复选框要在name后面加[],表示接收的是一个数组 -->
你喜欢什么<input type="checkbox" name="hobby[]" value="唱歌">唱歌
<input type="checkbox" name="hobby[]" value="跳舞">跳舞
<input type="checkbox" name="hobby[]" value="看书">看书
<input type="checkbox" name="hobby[]" value="爬山">爬山
<input type="checkbox" name="hobby[]" value="游泳">游泳<br/>
个人介绍:<textarea rows="10" cols="30" name="intro"></textarea><br/>
您选择的图片:<input type="file" name="file">
<input type="submit" value="提交"><br/>
</form>
</body>
</html>
b.php
<?php
echo "<pre>";
echo print_r($_POST);
echo "</pre>";
echo "您的爱好是:";
foreach ($_POST['hobby'] as $key => $value) {
echo "$value";
//end 判断一个数组中的最后一个数
if ($value!=end($_POST['hobby'])) {
echo ",";
}
}
echo "<br/>您的个人介绍是:".$_POST['intro']; ?>
结果:
Array
// (
// [username] => root
// [password] => 123456
// [sex] => woman
// [hobby] => Array
// (
// [0] => 唱歌
// [1] => 跳舞
// ) // [intro] => 给对方
// [file] => VirtualBox.exe
// )
// 1
// 您的爱好是:唱歌,跳舞
// 您的个人介绍是:给对方
3.$_REQUEST
定义:可以接收post、get请求数据还包括$_COOKIE数组
4.$_SERVER
定义:包含了http请求行和消息头的信息,还有服务器自己的信息
基本用法:
- 获取请求服务器的ip地址(REMOTE_ADDR)
- 请求服务器端apache的版本号和php版本号(SERVER_SIGNATURE'、SERVER_SOFTWARE、)
- 防盗链行为(HTTP_REFERER)
5.$_ENV
定义:通过环境方式传递给当前脚本的变量的数组
该全局数组可以获取全局变量,但默认为禁用状态。可以在php.ini文件中启用
6.$GLOBALS
定义:包含了全部变量的全局组合数组
你定义的全局变量会自动被GLOBALS管理起来
<?php
$a=900;
echo "<pre>";
echo print_r($GLOBALS);
echo "</pre>";
?>
结果:
Array
(
[_GET] => Array
(
[AA] => QQ
) [_POST] => Array
(
) [_COOKIE] => Array
(
) [_FILES] => Array
(
) [_ENV] => Array
(
) [_REQUEST] => Array
(
[AA] => QQ
) [_SERVER] => Array
(
[HTTP_HOST] => localhost
[HTTP_CONNECTION] => keep-alive
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
[HTTP_ACCEPT_ENCODING] => gzip, deflate, br
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8
[PATH] => C:\ProgramData\Oracle\Java\javapath;C:\Python27;C:\Program Files (x86)\Google\Chrome\Application;C:\Python27\Scripts;C:\Program Files (x86)\Google\Chrome\Application;C:\Windows\System32;D:\Program Files (x86)\Git\cmd;D:\Program Files (x86)\Git\mingw32\bin;D:\Program Files (x86)\Git\usr\bin;%JAVA_HOME%;D:\apache-jmeter-3.2\bin;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps
[SystemRoot] => C:\Windows
[COMSPEC] => C:\Windows\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
[WINDIR] => C:\Windows
[SERVER_SIGNATURE] =>
Apache/2.4.27 (Win64) PHP/5.6.31 Server at localhost Port 80 [SERVER_SOFTWARE] => Apache/2.4.27 (Win64) PHP/5.6.31
[SERVER_NAME] => localhost
[SERVER_ADDR] => ::1
[SERVER_PORT] => 80
[REMOTE_ADDR] => ::1
[DOCUMENT_ROOT] => D:/wamp64/www
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => D:/wamp64/www
[SERVER_ADMIN] => wampserver@wampserver.invalid
[SCRIPT_FILENAME] => D:/wamp64/www/server.php
[REMOTE_PORT] => 63231
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => AA=QQ
[REQUEST_URI] => /server.php?AA=QQ
[SCRIPT_NAME] => /server.php
[PHP_SELF] => /server.php
[REQUEST_TIME_FLOAT] => 1512969105.181
[REQUEST_TIME] => 1512969105
) [GLOBALS] => Array
*RECURSION*
[a] => 900
)
1
【二十三】php之预定义超全局变量的更多相关文章
- PHP学习笔记--Php预定义超全局变量$_GET
Php中的许多预定义变量都是超全局的,无需使用global声明 超全局变量 不需要声明就可以直接使用 提供超全局变量(数组)为了让程序员更快捷的编程 $GLOBALS— 引用全局作用域中可用的全部变量 ...
- PHP中的预定义超全局数组
定义 超全局变量,是在全部作用域中始终可用的内置变量. PHP中的许多预定义变量都是"超全局的",这意味着它们在一个脚本的全部作用域中都可用. 在函数或方法中无需执行 global ...
- PHP中预定义超全局数组(变量)
PHP中许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用.超全局变量除了具有全局变量特点外,在函数或方法中无需执行global $variable:就可以访问它们. 提供超全 ...
- Java8学习笔记(二)--三个预定义函数接口
三个函数接口概述 JDK预定义了很多函数接口以避免用户重复定义.最典型的是Function: @FunctionalInterface public interface Function<T, ...
- PHP 预定义超全局数组/变量
1.超全局变量:不用定义声明即可用.PHP有九种 2.$_GET:通过参数传递给当前脚本的变量的数组 浏览器页面-->(http协议)->apache-->php module--& ...
- php最全基础,数组,函数,超全局变量,时间,回话,文件,php操作mysql
共享一份学习php最全基础语法知识的笔记 原文链接:http://www.cnblogs.com/oscn/p/3607757.html:略有修改 http://www.cnblogs.com/l ...
- php预定义变量,超全局变量,魔术方法,特殊函数变量使用
<?php /* * 本代码全部为测试函数代码,部分注释和写实例 * * 修改php.ini variables_order=”EGPCS” * 请注意$_REQUEST在优先级传参的时候会造成 ...
- php学习笔记 [预定义数组(超全局数组)]
<?php 预定义数组: * 自动全局变量---超全局数组 * * 1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据 * 2.这些数组比较特别 * 3.全局范围内自动生效,都可以直 ...
- PHP基础-PHP中预定义的超全局数组
预定义数组: 自动全局变量---超全局数组 1. 包含了来自WEB服务器,客户端,运行环境和用户输入的数据 2. 这些数组比较特别 3. 全局范围内自动生效,都可以直接使用这些数组 4. 用户不能自定 ...
随机推荐
- Nodejs.热部署方法
在开发中我们修改了一点代码后要去重启服务器才能看到结果,为了省去这个过程我们以往经常使用热部署代码的方法 下面是使用"supervisor"来达到热部署能力的方法: sudo np ...
- Memcached理解
一.Memcached简介: 1. Memcached是一个自由开源的,高性能的,分布式内存对象缓存系统. 2. Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符 ...
- 理解vue中的scope的使用
理解vue中的scope的使用 我们都知道vue slot插槽可以传递任何属性或html元素,但是在调用组件的页面中我们可以使用 template scope="props"来获取 ...
- spark-shell启动报错:Yarn application has already ended! It might have been killed or unable to launch application master
spark-shell不支持yarn cluster,以yarn client方式启动 spark-shell --master=yarn --deploy-mode=client 启动日志,错误信息 ...
- 26.Linux-网卡驱动(详解)
1.描述 网卡的驱动其实很简单,它还是与硬件相关,主要是负责收发网络的数据包,它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送, 并将接收到的数据包传递给上层协议. 网卡设备与字符设备和块 ...
- iOS之 Category 属性 的理解
在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量 反正读第一遍的时候我是有点晕的,可以添加“属性”,然后又说“添加实例变量”,第一感觉就好像 有 ...
- Appium python自动化测试系列之自动化截图(十一)
11.1 截图函数的正常使用 11.1.1 截图方法 无论是在手动测试还是自动化测试中场景复现永远是一个很重要的事情,有时候一些问题可能很难复现,这个都需要测试人员对bug有很高的敏感度,在一般的情况 ...
- HBase数据备份及恢复(导入导出)的常用方法
一.说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产.备份Hbase时的难点是其待备份的数据集可能非 ...
- Leetcode题解(十九)
54.Spiral Matrix 题目: 题目意思很简单,就是螺旋式访问矩阵元素.也没有比较经典的算法可以解决此题,只需要模拟一下这个过程即可. 代码如下: class Solution { publ ...
- PHP(一)OOP基础
[面向过程&面向对象] 1.面向过程:专注于解决一件事情的过程.最大的特点,是有一个个函数来实现功能需求 2.面向对象:专注于有哪一个对象来实现这个功能,最大的特点,时产生一个个具有属性和方法 ...