Php 如何测试URL查询字符串中是否存在特定变量?

Php 如何测试URL查询字符串中是否存在特定变量?,php,Php,我已经编写了以下php代码来从URL查询字符串中捕获名称和电子邮件 <?php $name = "rkb"; // Default name $email= "rkb@example.com"; // Default email if ($_GET['name']) { $name = test_input($_GET['name']); } i

我已经编写了以下php代码来从URL查询字符串中捕获名称和电子邮件

   <?php
        $name = "rkb";                // Default name
        $email= "rkb@example.com";    // Default email
        if ($_GET['name']) {
            $name = test_input($_GET['name']);
        }
        if ($_GET['email']) {
            $email = test_input($_GET['email']);
        }

        function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
        }

    ?>
我想使PHP的行为使
$name
$email
在缺少查询字符串时获得默认值。

使用
empty()
。它测试变量是否已设置以及是否包含非空值

    if (!empty($_GET['name'])) {

您需要的是PHP函数

一个简单的方法

$name = isset($_GET['name']) ? test_input($_GET['name']) : "rkb";

使用
if(isset($\u GET['name'])
而不是
if($\u GET['name'])

使用isset函数检查是否设置了$\u GET。像这样更改代码

<?php
    $name = "rkb";                // Default name
    $email= "rkb@example.com";    // Default email
    if (isset($_GET['name'])) {
        $name = test_input($_GET['name']);
    }
    if (isset($_GET['email'])) {
        $email = test_input($_GET['email']);
    }

    function test_input($data) {
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
        return $data;
    }

?>

您可以使用
isset()
确定变量是否已设置且不为空。此外,还要检查
empty()

    if (isset($_GET['name']) && !empty($_GET['name'])) {
       $name = test_input($_GET['name']); 
    }

尝试使用
a.K.a.
请删除多余的“)”isset()和!空()?是empty()更好,因为它还测试非null值?
    if (isset($_GET['name']) && !empty($_GET['name'])) {
       $name = test_input($_GET['name']); 
    }