预定义超全局变量
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管理起来相关文章推荐
- 远程访问Windows性能计数器
- Makefile 中":=" "?=" "+=" "="的区别
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- HDU 1065 I Think I Need a Houseboat
- 各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)
- 在ceph 的admin-node安装calamari详细步骤
- 划分树模版
- HDU 4251 The Famous ICPC Team Again 划分树 区间第K大
- Java Mail发送邮件各种错误
- Jboss添加数据源出现Service jboss.jdbc-driver.mysql is already registered错误
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
- Jboss7启动错误以及添加数据源
- HDU 4348 To the moon 主席树成段更新
- NetBeans中文界面改英文
- HDU 3474 Necklace 单调队列
- HDU 3466 Proud Merchants 需要排序的背包
- HDU 3473 Minimum Sum 划分树
- Linux 下vsftp配置文件
- pta-任务调度合理性