PHP常用的超全局变量(8个)

在PHP中,超全局变量是一种特殊的变量类型,它们在全部作用域中始终可用,无需使用global关键字来访问。这些变量提供了在PHP脚本中访问和操作各种数据和环境信息的便捷方式。以下是PHP中常用的8个超全局变量的详细介绍:

1. $GLOBALS

  • 描述:GLOBALS是一个包含了全局作用域中可用的全部变量的全局组合数组。在函数或方法中,可以通过GLOBALS数组来访问全局作用域中的变量。

  • 用法 :GLOBALS数组的键是变量名,值是对应变量的值。例如,在全局作用域中定义了一个变量'foo,那么在函数内部可以通过$GLOBALS['foo']`来访问它。

  • 示例

    php 复制代码
    $foo = "Example content";  
    function test() {  
        echo '$foo in global scope: ' . $GLOBALS['foo'] . '<br />';  
        $GLOBALS['foo'] = '1111';  
        echo '$foo in global scope after modification: ' . $GLOBALS['foo'] . '<br />';  
    }  
    test();  
    echo $foo; // 输出:1111

2. $_SERVER

  • 描述:$_SERVER是一个包含了服务器和执行环境信息的数组。它提供了诸如头信息、路径、脚本位置以及请求方法等信息。

  • 用法 :SERVER数组的键是服务器提供的变量名,值是相应的信息。例如,'_SERVER['PHP_SELF']表示当前执行脚本的文件名,$_SERVER['SERVER_NAME']`表示当前运行脚本所在服务器的主机名。

  • 示例

    php 复制代码
    echo '当前执行脚本的文件名: ' . $_SERVER['PHP_SELF'] . '<br>';  
    echo '当前运行脚本所在服务器的主机名: ' . $_SERVER['SERVER_NAME'] . '<br>';  
    echo '当前请求的 Host 头部内容: ' . $_SERVER['HTTP_HOST'] . '<br>';  
    echo '当前用户代理(浏览器)的字符串: ' . $_SERVER['HTTP_USER_AGENT'] . '<br>';  
    echo '客户端的 IP 地址: ' . $_SERVER['REMOTE_ADDR'] . '<br>';

3. $_GET

  • 描述:GET是一个关联数组,用于收集通过URL参数传递的数据。当使用GET方法发送HTTP请求时,参数会附加在URL的末尾,并通过_GET数组来访问。

  • 用法 :GET数组的键是URL参数的名称,值是参数的值。例如,'_GET['id']将返回URL中名为id`的参数的值。

  • 示例

    php 复制代码
    // 假定 URL 为 example.com/index.php?name=Alice  
    if (isset($_GET['name'])) {  
        $name = $_GET['name'];  
        echo "Hello, $name!";  
    } else {  
        echo "Name parameter is not set";  
    }

4. $_POST

  • 描述:POST也是一个关联数组,用于收集通过POST方法提交的表单数据。与_GET不同,$_POST方法将用户输入的数据发送到服务器,但不会在URL中显示这些数据。

  • 用法:POST数组的键是表单元素的名称,值是用户输入的数据。例如,'_POST['name']`将返回提交的名称值。

  • 示例

    php 复制代码
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">  
        Name: <input type="text" name="name"><br>  
        <input type="submit">  
    </form>  
      
    <?php  
    if ($_SERVER["REQUEST_METHOD"] == "POST") {  
        $name = $_POST['name'];  
        if (empty($name)) {  
            echo "Name is empty";  
        } else {  
            echo "Hello, $name!";  
        }  
    }  
    ?>

5. $_FILES

  • 描述:$_FILES是一个关联数组,用于访问通过HTTP POST方法上传的文件。它包含了上传文件的属性,如文件名、文件类型、文件大小等。

  • 用法:FILES数组的键是表单中'<inputtype="file">'元素的名称,值是一个包含了文件信息的数组。例如,'_FILES['file']['name']`将返回上传文件的名称。

  • 示例

    php 复制代码
    <form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">  
        Select file to upload:  
        <input type="file" name="file"><br>  
        <input type="submit" value="Upload File">  
    </form>  
      
    <?php  
    if ($_SERVER["REQUEST_METHOD"] == "POST") {  
        $target_dir = "uploads/";  
        $target_file = $target_dir . basename($_FILES["file"]["name"]);  
        if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {  
            echo "The file ". htmlspecialchars( basename( $_FILES["file"]["name"])). " has been uploaded.";  
        } else {  
            echo "Sorry, there was an error uploading your file.";  
        }  
    }  
    ?>
  • 描述:$_COOKIE是一个关联数组,包含了客户端发送的HTTP Cookie的值。Cookie是一种在客户端浏览器中存储数据的机制,用于跟踪用户状态和存储用户偏好设置。
  • 用法 :COOKIE数组的键是Cookie的名称,值是Cookie的值。例如,'_COOKIE['username']将返回存储在名为username`的Cookie中的值。
  • 设置Cookie :在PHP中,可以使用setcookie()函数来设置Cookie。

7. $_SESSION

  • 描述:$_SESSION是一个关联数组,用于在不同页面之间存储和访问会话数据。它可以用来跟踪用户会话状态,存储用户信息,以及实现用户登录和注销等功能。

  • 用法 :在PHP脚本中,首先需要调用session_start()函数来启动会话,然后才能使用SESSION数组来存储和访问会话数据。例如,'_SESSION['username']`可以存储当前登录用户的用户名。

  • 示例

    php 复制代码
    session_start();  
    $_SESSION['username'] = 'JohnDoe';  
    // 在另一个页面中访问会话数据  
    session_start();  
    echo 'Hello, ' . $_SESSION['username'];

8. $_REQUEST

  • 描述:$_REQUEST是一个关联数组,包含了通过GET、POST和COOKIE方式提交的参数的值。它可以同时获取GET和POST的参数值,但不建议在生产环境中使用,因为它可能会引入安全风险。
  • 用法 :REQUEST数组的键是参数的名称,值是参数的值。例如,'_REQUEST['name']将返回通过GET或POST方式提交的名为name`的参数的值。
  • 注意事项:由于REQUEST可以获取多种来源的参数,因此在使用之前需要注意安全性和数据一致性。在生产环境中,建议明确使用_GET、POST或_COOKIE来访问特定的参数。

总结

以上介绍了PHP中常用的8个超全局变量,包括GLOBALS、_SERVER、G​ET、_POST、F​ILES、_COOKIE、S​ESSION和_REQUEST。这些变量在PHP脚本中提供了丰富的功能,用于访问和操作各种数据和环境信息。在使用这些变量时,需要注意安全性和数据验证,以确保应用程序的安全性和可靠性。

相关推荐
hccee15 分钟前
C# IO文件操作
开发语言·c#
hummhumm19 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
J老熊29 分钟前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
zmd-zk44 分钟前
flink学习(2)——wordcount案例
大数据·开发语言·学习·flink
好奇的菜鸟1 小时前
Go语言中的引用类型:指针与传递机制
开发语言·后端·golang
Alive~o.01 小时前
Go语言进阶&依赖管理
开发语言·后端·golang
花海少爷1 小时前
第十章 JavaScript的应用课后习题
开发语言·javascript·ecmascript
手握风云-1 小时前
数据结构(Java版)第二期:包装类和泛型
java·开发语言·数据结构
喵叔哟1 小时前
重构代码中引入外部方法和引入本地扩展的区别
java·开发语言·重构
尘浮生1 小时前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea