您的位置:首页 > 编程语言 > PHP开发

实习记录(一)--php超全局变量$_GET

2016-03-17 23:58 351 查看

php超全局变量问题

———-

首先 重要的事情说三遍:

超全局变量是数组!

超全局变量是数组!!

超全局变量师叔祖!!!!

———-

(1)全局变量与局部变量

php中的变量分为:
- 局部变量
- 全局变量
- 超全局变量


其中,局部变量只在函数内部有人认识,除了函数的花括号{ //巴拉巴拉 }之外,就无法调用。

而全局变量,个人感觉应该叫伪全局变量,因为这个和java中的变量定义有所不同,它在花括号内部的花括号默认是不可见的,如果想在内部的花括号内(即函数内)使用全局变量,需要使用关键字global来声明一下,哪里来的全局之意。

<?php

$a = 11111;

function testGlobal() {

echo $a; //会报错哦,哼

global $a = 0;

echo $a; //结果为0

}
?>

(2)超全局变量

而超全局变量则不同,它在脚本域内都是可用的,而且不用定义,已经规定好了包含的类型:

$_GET

$_POST

$_REQUEST

$_SERVER

$_ENV

$_FILE

$_COOKIE

$_SESSION

$GLOBAL(注意:这个变量没有下划线)

然而,为什么要规定这些呢,当然是为了开发人员提供方便啦,另外,他还可以完成其他的功能。

其中,有几个小技巧:

直接打印超全局变量可以看到其中到底有什么内容和其中的参数

<?php
echo '$_GET';
?>


可以直接向超全局变量中加入自己定义的参数并赋值,但是一个脚本文件对GET自定义的值,在另一个脚本文件里是不可用的,这是因为,当浏览器打开一个超链接时,会通过http协议向apache服务器传递数据,而apache会帮你调用php处理模块来把这些数据打包成数组,而这个数组就是_GET自定义的值,在另一个脚本文件里是不可用的,这是因为,当浏览器打开一个超链接时,会通过http协议向apache服务器传递数据,而apache会帮你调用php处理模块来把这些数据打包成数组,而这个数组就是_GET数组,而当一个脚本结束以后,那些调用和传递的数据都会消失,所以当另一个脚本执行时,上一个自定义的参数会消失不见,自然无法使用,啦啦啦。

<?php
$_GET["lalala"] = "nber";
echo "$_GET["lalala"]";
?>


================================

今天内容=>$_GET

======================

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

哎呀,什么是url参数?



来来来,标注的部分中,“?”后面的就是url参数

https://www.baidu.com/s

?ie=utf8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=php&……

其中,每个参数用&来隔开,其中ie啊,f啊,rsv_dp啊就是url参数

也就是说,当浏览器发送一个get请求的时候,会在url中加上参数,而$_GET就是用来储存这些参数的数组,但是这种方式传递参数明显不安全,解决办法是使用POST变量。

$_GET基本用法

浏览器通过超链接发送的数据

提交表单得到的数据(但是最好还是用POST)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: