PHP-变量(三)(局部变量、全局变量、超全局变量)
2017-07-19 15:24
309 查看
1. 变量的划分
JS 中 变量分两类:局部变量 和 全局变量。
PHP 中 变量分三类:局部变量、全局变量、超全局变量
2. 局部变量
在函数内部声明的变量,就是局部变量,当函数执行完毕,局部变量就消失了。局部变量,只能在函数内部使用。
验证局部变量不能在函数外使用,如下图
3. 全局变量
在函数外部声明的变量,就是全局变量。在 PHP 中,全局变量,在函数中不能使用,网页执行完毕,全局变量消失。
验证全局变量不能在函数内部使用,如下图
4. 超全局变量(也叫超全局数组变量)
是系统定义的变量,就是超全局变量。该变量可以在任何地方直接使用。
4.1 超全局变量有哪些?
4.2 $_POST
主要用来获取 HTTP POST 方式传递到服务器的数据
特点:
① 相对安全,数据不在地址栏显示
② 可以发送任何类型的数据
③ 对数据大小没有限制
以$_POST为例,实现简单的表单提交,服务器端显示获取到的数据
4.3 $_GET
用来获取 HTTP GET 方式发送到服务器的数据。
特点:
① 所有的数据都会显示在地址栏,不安全
② 只能发送少量的数据。
③ 只能发送字符串类型的数据。
注意:通过地址栏发送的请求都是GET请求
那么,我如果想要同时发送GET 和 POST 请求该怎么办呢?
在上例的基础上稍作改动
4.4 $_REQUEST
REQUEST包含了_GET、POST、_COOKIE 数组的内容
虽然$_REQUEST 可以获取 GET 或 POST 提交的数据,但速度表较慢。
4.5 $_SERVER
$_SERVER 可以获取服务端执行环境的相关信息。
JS 中 变量分两类:局部变量 和 全局变量。
PHP 中 变量分三类:局部变量、全局变量、超全局变量
2. 局部变量
在函数内部声明的变量,就是局部变量,当函数执行完毕,局部变量就消失了。局部变量,只能在函数内部使用。
// 定义函数abc function abc() { // 在函数内部声明变量:局部变量 $a = 100; }
验证局部变量不能在函数外使用,如下图
3. 全局变量
在函数外部声明的变量,就是全局变量。在 PHP 中,全局变量,在函数中不能使用,网页执行完毕,全局变量消失。
// 在函数外部声明的变量:全局变量
$b = 200;
// 定义函数abc function abc() { // 在函数内部声明变量:局部变量 $a = 100; }
验证全局变量不能在函数内部使用,如下图
4. 超全局变量(也叫超全局数组变量)
是系统定义的变量,就是超全局变量。该变量可以在任何地方直接使用。
4.1 超全局变量有哪些?
超全局变量 | 描述 |
---|---|
$_GET | 主要用来获取 HTTP GET方式传递的数据。 |
$_POST | 主要用来获取 HTTP POST方式传递的数据。 |
$_REQUEST | 主要用来获取 GET 和 POST 方式传递的数据,但是速度相对较慢。 |
$_SERVER | 主要用来获取服务器执行环境的相关信息。 |
$GLOBALS | 主要包含GET、_POST、$_COOKIE 数组的内容。 |
$_SESSION | 主要获取服务器端的会话信息。 |
$_COOKIE | 主要获取客户端的会话信息。 |
$_FILES | 主要获取上传文件的相关信息。 |
$ENV | 获取环境信息。(不常用) |
主要用来获取 HTTP POST 方式传递到服务器的数据
特点:
① 相对安全,数据不在地址栏显示
② 可以发送任何类型的数据
③ 对数据大小没有限制
以$_POST为例,实现简单的表单提交,服务器端显示获取到的数据
<?php /* * 客户端代码 */ // 验证表单信息是否匹配, 匹配就获取里面的数据 if(isset($_POST['ac']) && $_POST['ac'] == 'login') { // 获取表单提交数据 $username = $_POST['username']; $password = $_POST['password']; echo "用户名:$username, 密码:$password"; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <body> <form action="./index.php" name="form1" method="post" > <table> &l 4000 t;tr> <td>用户名:</td> <td><input type="text" name="username" placeholder="请输入用户名"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password" placeholder="请输入密码"></td> </tr> <tr> <td><input type="submit" value="提交"></td> <!--隐藏域,用于表单验证--> <td><input type="hidden" name="ac" value="login"></td> </tr> </table> </form> </body> </html>
<?php /* * 服务端代码 */ // 验证表单信息是否匹配, 匹配就获取里面的数据 if(isset($_POST['ac']) && $_POST['ac'] == 'login') { // 获取表单提交数据 $username = $_POST['username']; $password = $_POST['password']; echo "用户名:$username<br>密码:$password"; } ?>
/** * 实现了简单的表单验证 * 要使用我的实例代码,需要满足以下条件 * ① 开启Apache服务器 * ② 设置域名 www.phpdemo1.com * ③ 保证index.php 和 server.php 在根目录下 */
4.3 $_GET
用来获取 HTTP GET 方式发送到服务器的数据。
特点:
① 所有的数据都会显示在地址栏,不安全
② 只能发送少量的数据。
③ 只能发送字符串类型的数据。
注意:通过地址栏发送的请求都是GET请求
那么,我如果想要同时发送GET 和 POST 请求该怎么办呢?
在上例的基础上稍作改动
4.4 $_REQUEST
REQUEST包含了_GET、POST、_COOKIE 数组的内容
虽然$_REQUEST 可以获取 GET 或 POST 提交的数据,但速度表较慢。
4.5 $_SERVER
$_SERVER 可以获取服务端执行环境的相关信息。
相关文章推荐
- php中的全局与局部变量
- php部分(查看文件、建立站点、语法变量、变量的几个方法、“全局局部变量的调用”、static、函数参数的作用域);
- PHP 之局部变量与全局变量的交错(一)嵌套for循环中的变量
- php全局变量配置
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- C/C++中全局变量,静态局部变量,局部变量的初始化问题
- IOS中 Block用法进阶二 局部变量和全局变量在Block中的使用
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- php超全局变量、魔术变量、魔术函数
- 漫谈php全局变量Global
- php扩展 c,传参,传数组,zvar类型,全局变量
- PHP超全局变量$_ENV详解,及$_ENV为空的可能原因
- JS全局变量VAR和THIS--在函数内部,加var是局部变量,不加是全局变量
- PHP Global变量定义当前页面的全局变量
- 【菜鸟C++学习笔记】4.局部变量与全局变量
- PHP学习笔记:全局变量的思考
- 几道有关局部变量和全局变量的题目
- Python3学习笔记4-函数,全局变量&局部变量,内置函数
- 局部变量、全局变量和静态变量的含义