您的位置:首页 > 其它

预定义超全局变量

2016-07-11 09:37 253 查看

php中预定义的全局变量有:

超全局变量:在全部作用域中始终可用的内置变量

GLOBALS;//只有它没有下划线_SERVER;

GET;_POST;

FILES;文件上出的时候使用_COOKIE;

SESSION;_REQUEST;

$_ENV;(environment)

全局变量:在这个php文件中,任何函数都可以使用(对任何函数都是可见的)

代码测试

<?php
/*header("Content-type:text-html;charset=utf-8");*/
include ("includes/header.html");
$a=23;
function test(){
//使用了全局变量
global $a;
$a=45;
}
test();
echo $a;  //输出45;
?>


如果去掉global $a;这一行 就会输出23

超全局变量除了有全局变量的特点之外,可以无需声明,直接使用。是由系统生成和维护的。

代码演示:

echo "<pre>";
$_SERVER['zwj']="赵文娟";
echo print_r($_SERVER);
echo "</pre>";


但是这个zwj个变量只是在当前这个页面有效,其他页面是不会访问到$_SERVER[‘zwj’]这个量的值。

提供超全局数组的原因:为了让程序员更方便快捷的写出php程序

php共提供了9种超全局变量

超全局数组的数据的来龙去脉,使用这些超全局变量的时候必须都是得大写

1、_GET;

_GET:通过URL参数传递给当前脚本的变量的数组

1、客户机(浏览器)通过超链接将信息传递给服务器

2、客户机(浏览器)通过表单传送给服务器(但一般来说推介post提交)

实际使用过程:

test4.php

<?php
include ('includes/header.html');
echo "<a href='index.php?city=北京局&name=着嗯卷'>传送数据</a>";
?>


index.php

<?php
include ('includes/header.html');
echo "<pre>";
echo print_r($_GET);
//指定取出某个数据
echo "$_GET[city]";
echo "$_GET[name]";
echo "</pre>";
?>


浏览器访问test4.php

使用细节:

1、 判断是否是受到get请求 通过empty()来判断

2、绝对不要启用全局 也就是说 rigister_globals=off;

2、$_POST

$_post:通过HTTP POST方法传递给当前脚本的数组,表单提交的时候都是用post的提交方式

值得注意的是post提交复选框的时name必须为XXX[],和提交文本域的时候

test4.php

<?php
include ('includes/header.html');
?>
<h1>用户注册</h1>
<form action="index.php" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="pass"><br/>
性别: <input type="radio" name="sex" value="woman">女<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="20" name="introduce" cols="20">

</textarea><br/>
请选择图片<input type="file" name="myphoto">
<input type="submit" value="提交">
</form>
<?php
include ('includes/footer.html')
?>


index.php

<?php
include ('includes/header.html');
echo "<pre>";
echo print_r($_POST);
$hobbis= $_POST["hobby"];
foreach($hobbis as $key=>$val){
echo $key.$val;
}
echo $_POST['introduce'];
echo "</pre>";
include ('includes/footer.html');
?>


浏览器访问test4.php

$_REQUEST

REQUEST中可以包括GET/POST/COOKIE,$_REQUEST是一个包含内容更多的变量,所以使用这个变量会比较危险,比较不可信,不建议大家经常使用。但是不确定是get还是post可以使用if—-else的方式来通过post get方式来取得传过来的值

$_SERVER

这里里面的信息主要包括:

1、客户端浏览器信息

2、服务器端本身的信息

显示访问服务器的ip地址

SERVER[‘REMOTEADDR′]显示服务器端的apache版本号和php编号_SERVER[‘SERVER_SOFTWARE’];

$ENV 环境

当我们希望获取服务器端的环境信息时,可以使用$_ENV,该全局数组可以获取环境变量,

$GLOBAL

包含所有的信息在这个全局变量,每一个全局变量都会被$GLOBAL管理起来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: