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

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

1. $GLOBALS

  • 描述:GLOBALS是一个包含了全局作用域中可用的全部变量的全局组合数组。在函数或方法中,可以通过GLOBALS数组来访问全局作用域中的变量。
  • 用法:GLOBALS数组的键是变量名,值是对应变量的值。例如,在全局作用域中定义了一个变量‘foo,那么在函数内部可以通过$GLOBALS['foo']`来访问它。
  • 示例
    $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是一个包含了服务器和执行环境信息的数组。它提供了诸如头信息、路径、脚本位置以及请求方法等信息。
  • 用法:S​ERVER数组的键是服务器提供的变量名,值是相应的信息。例如,‘_SERVER['PHP_SELF']表示当前执行脚本的文件名,$_SERVER['SERVER_NAME']`表示当前运行脚本所在服务器的主机名。
  • 示例
    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

  • 描述:G​ET是一个关联数组,用于收集通过URL参数传递的数据。当使用GET方法发送HTTP请求时,参数会附加在URL的末尾,并通过_GET数组来访问。
  • 用法:G​ET数组的键是URL参数的名称,值是参数的值。例如,‘_GET['id']将返回URL中名为id`的参数的值。
  • 示例
    // 假定 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

  • 描述:P​OST也是一个关联数组,用于收集通过POST方法提交的表单数据。与_GET不同,$_POST方法将用户输入的数据发送到服务器,但不会在URL中显示这些数据。
  • 用法:P​OST数组的键是表单元素的名称,值是用户输入的数据。例如,‘_POST['name']`将返回提交的名称值。
  • 示例
    <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方法上传的文件。它包含了上传文件的属性,如文件名、文件类型、文件大小等。
  • 用法:F​ILES数组的键是表单中‘<inputtype="file">‘元素的名称,值是一个包含了文件信息的数组。例如,‘_FILES['file']['name']`将返回上传文件的名称。
  • 示例
    <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.";  
        }  
    }  
    ?>

6. $_COOKIE

  • 描述:$_COOKIE是一个关联数组,包含了客户端发送的HTTP Cookie的值。Cookie是一种在客户端浏览器中存储数据的机制,用于跟踪用户状态和存储用户偏好设置。
  • 用法:C​OOKIE数组的键是Cookie的名称,值是Cookie的值。例如,‘_COOKIE['username']将返回存储在名为username`的Cookie中的值。
  • 设置Cookie:在PHP中,可以使用setcookie()函数来设置Cookie。

7. $_SESSION

  • 描述:$_SESSION是一个关联数组,用于在不同页面之间存储和访问会话数据。它可以用来跟踪用户会话状态,存储用户信息,以及实现用户登录和注销等功能。
  • 用法:在PHP脚本中,首先需要调用session_start()函数来启动会话,然后才能使用S​ESSION数组来存储和访问会话数据。例如,‘_SESSION['username']`可以存储当前登录用户的用户名。
  • 示例
    session_start();  
    $_SESSION['username'] = 'JohnDoe';  
    // 在另一个页面中访问会话数据  
    session_start();  
    echo 'Hello, ' . $_SESSION['username'];

8. $_REQUEST

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

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ac-er8888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值