PHP-变量(三)(局部变量、全局变量、超全局变量)

来源:互联网 发布:睿智体育0 淘宝店 编辑:程序博客网 时间:2024/06/04 00:27

1. 变量的划分

JS 中 变量分两类:局部变量 和 全局变量。

PHP 中 变量分三类:局部变量、全局变量、超全局变量

2. 局部变量

在函数内部声明的变量,就是局部变量,当函数执行完毕,局部变量就消失了。局部变量,只能在函数内部使用。

// 定义函数abcfunction abc() {    // 在函数内部声明变量:局部变量    $a = 100;}

验证局部变量不能在函数外使用,如下图

这里写图片描述

3. 全局变量

在函数外部声明的变量,就是全局变量。在 PHP 中,全局变量,在函数中不能使用,网页执行完毕,全局变量消失。

// 在函数外部声明的变量:全局变量$b = 200;// 定义函数abcfunction abc() {    // 在函数内部声明变量:局部变量    $a = 100;}

验证全局变量不能在函数内部使用,如下图

这里写图片描述

4. 超全局变量(也叫超全局数组变量)

是系统定义的变量,就是超全局变量。该变量可以在任何地方直接使用。

4.1 超全局变量有哪些?

超全局变量 描述 $_GET 主要用来获取 HTTP GET方式传递的数据。 $_POST 主要用来获取 HTTP POST方式传递的数据。 $_REQUEST 主要用来获取 GET 和 POST 方式传递的数据,但是速度相对较慢。 $_SERVER 主要用来获取服务器执行环境的相关信息。 $GLOBALS 主要包含GET_POST、$_COOKIE 数组的内容。 $_SESSION 主要获取服务器端的会话信息。 $_COOKIE 主要获取客户端的会话信息。 $_FILES 主要获取上传文件的相关信息。 $ENV 获取环境信息。(不常用)

4.2 $_POST

主要用来获取 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>            <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 可以获取服务端执行环境的相关信息。

这里写图片描述

原创粉丝点击