### 什么是超全局变量
下面先了解什么是全局变量,看下面的例子“
~~~
<?php
//全局标量,因为该变量作用于在整个文件中,都是可见的
$a=23;
function test(){
//但是在函数中并不能使用到全局$a,如果想使用需要加下面的一句
// global $a;// A
$a=45;
}
test();
echo $a;
?>
~~~
当A标识段落被注释时,输出 23;
当没有被注释时,输出45;
那么什么是超全局变量
超全局变量除了有全局变量的特性外,还有可以无需声明直接使用,看下面的例子
~~~
<?php
//超全局变量
$_SERVER['jsh'] = "阿辉";
echo "<pre>";
print_r($_SERVER);
echo "</pre>"
?>
~~~
输出是会输出 [jsh]="阿辉”,也会被打印出来,但是仅限于这个文件中。如何换个文件将不会被打印
总结如下:
1、 PHP中许多预定义变量都是超全局的,这意味着他们在一个脚本的全部作用域都都可以用,在函数或方法中无需执行 global $variable;来访问他们 。
2、 PHP设计者提供这些超全局数组的目的是为了让PHP程序员可以更方便的编写程序
### PHP提供了九种:
1、$_GET
通过URL参数传递给当前脚本的变量的数组
Ø 基本用法:
1、 客户机(浏览器)通过超链接传送信息给服务器(默认使用get方式)
2、客户机(浏览器)通过扁担传送信息给服务器(但是我们推荐表单用Post提交 )
### 实现流程如下:
![](https://box.kancloud.cn/2016-06-03_5750fd8fbbead.jpg)
### 具体实例:
get.php
~~~
<?php
echo "<a href='a.php?city=beijing&name=jsh'>传送数据</a>";
?>
~~~
a.php
~~~
<?php
echo "<pre>";
print_r($_GET);
echo "</pre>";
//我们可以使用下面方法分别获得他们的数据
if(empty($_GET['name'])){
echo "没有收到";
}else{
echo $_GET['name']."<br/>";
}
if(empty($_GET['city'])){
echo "没有收到";
}else{
echo $_GET['city']."<br/>";
}
?>
~~~
测试结果:
~~~
Array
(
[city] => beijing
[name] => jsh
)
jsh
beijing
~~~
2、$_POST
通过http:post方式提交的数据,会被封装到$_POST超全局数据中
Ø 基本用法:
1客户机(浏览器)通过表单传送消息给服务器并且需要书用POST方式,有些数据的提交必须使用Post,比如上传文件。。看下面的示例:
post.html
~~~
<html>
<head>
<!--<meta http-equiv="content-type" content="text/html;charset=utf-8"/>-->
</head>
<h1>用户注册</h1>
<form action="./post.php" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="text" name="passwd"/><br/>
性别:<input type="radio" name="sex" value="women"/>女
<input type="radio" name="sex" value="man"/>男<br/>
你喜欢什么:<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="5" name="intro" cols="20"></textarea><br/>
上传图片:<input type="file" name="1.swd"/> <br/>
<input type="submit" value="提交"/>
</form>
</html>
~~~
post.php
~~~
<?php
//超全局变量Post使用
echo "<pre>";
//print_r($_POST);
$name=$_POST['username'];
$pwd=$_POST['passwd'];
$sax=$_POST['sex'];
$hobby=$_POST['hobby'];
echo "$name $pwd $sax <br/>";
print_r($hobby);
$text=$_POST['intro'];
echo $text;
?>
~~~
![](https://box.kancloud.cn/2016-06-03_5750fd8fd3434.jpg)
### post 和get 区别:
1、 安全性 post >get
2、数据长度要求[浏览器控制] post >get
3、保存到收藏夹 get方便
3、$_REQUST
定义$_REQUSR 中可以包含 GETPOST COOKIE数组的信息
也就是说既可以接收getpost 请求和Cookie。
~~~
<?php
//REQUEST使用
echo "<pre>";
print_r($_REQUEST);
echo "</pre>";
//如何去除某个值,和get post方法一样
//$_REQUEST 既可以接受Get 请求数据,也可以接受Post Cookie
//所以这个变量,比较不可信,不建议使用
echo $_REQUEST['aa'];
//如果不确定get/post
if($_SERVER['http_method'] == "post'){
echo $_POST['aa'];
}else if ($_SERVER['http_method'] == "get'){
echo $_GET['aa'];
}
?>
~~~
4、$_SERVER
前面的章节已经讲过,这里就不再多说了!具体看 [http://blog.csdn.net/jsh13417/article/details/8975828](http://blog.csdn.net/jsh13417/article/details/8975828)。
5 $_ENV
默认已经禁用了,这里也不再讲解了。
6 其他
~~~
$_FILE 与文件上传有关。
$_COOKIE 与Cookie相关
~~~
$SESSION 与Session 相关,这几个超全局数据功能强大,同时也比较复杂,暂时也不介绍!
- 前言
- HTML(第一天)
- HTML(第二天)
- DIV+CSS(第一天)
- DIV+CSS(第二天)
- DIV+CSS(第三天)
- DIV+CSS(第四天)
- PHP开发环境配置说明
- PHP基础数据类型及运算符介绍
- 走进PHP函数
- 走进位运算
- 走进数组及相关数组函数
- 面向对象的编程(类与对象)
- 面向对象的编程(类成员方法用法)
- 构造方法,析构方法
- static,global用法
- 静态方法
- 面向对象的编程方法
- 接口方法
- 接口VS继承、final、const
- 错误及异常处理机制、错误日志
- HTTP协议深度剖析
- 文件下载
- PHP数据库编程
- 数据库编程(2)
- 超全局变量
- Zend studio 开发环境入门
- 雇员管理系统(1)
- 雇员管理系统(2)
- 会话技术(cookie session)
- 会话技术 session场景使用介绍!
- PHP.in中session和cookie的配置说明
- PHP文件编程
- 报表及绘图技术
- 报表及绘图技术(jpgraph库使用,Linux安装及配置说明)
- XML基本语法及DTD介绍
- XML编程(Dom技术)
- XML编程(Xpath技术,simpleXml技术)基础入门
- 网上支付平台PHP版本
- javascript基础入门