使用if语句测试PHP $ _GET值

时间:2018-01-14 21:46:02

标签: php get

我想使用if语句测试GET变量的值。这是我的代码:

if(isset($_GET["v"]) == "test1") {
echo 'It worked: test1 loaded';
}

if(isset($_GET["v"]) == "test2") {
echo 'It worked: test2 loaded';
}

我的网址是https://www.example.com/video?v=test1

我希望能够根据网址中的信息更改页面上加载的内容。类似于YouTube视频的全部内容相同"观看"文件,但有一个$ _Get查询后,定义要加载的视频: www.youtube.com/watch?v=mNZLhuW8vk

但它没有用,所以我假设我的if语句搞砸了。

3 个答案:

答案 0 :(得分:5)

将你的条件分解为两个单独的条件,因为你现在拥有的条件将始终被视为已设置。

以下解释为:if set且等于:

即:

if(isset($_GET["v"]) && $_GET["v"] == "x")

“x”是您正在寻找的代表值。

答案 1 :(得分:1)

isset()返回不等于“test1”的truefalse,以获得评估$_GET['v']的实际值所需的行为,如下所示:

if(isset($_GET["v"]) && $_GET['v'] == "test1") {
    echo 'It worked: test1 loaded';
}

if(isset($_GET["v"]) && $_GET['v'] == "test2") {
    echo 'It worked: test2 loaded';
}

答案 2 :(得分:0)

if(isset($_GET["v"]) && $_GET['v'] == "test1") {
    echo 'It worked: test1 loaded';
}
else if(isset($_GET["v"]) && $_GET['v'] == "test2") {
    echo 'It worked: test2 loaded';
}

当选项太多时使用开关

if(isset($_GET["v"]))
{
    switch($_GET["v"])
    {
        case "test1":
        echo 'It worked: test1 loaded';
        break;
        case "test2":
        echo 'It worked: test2 loaded';
        default:
        echo 'Not Recognized';
        break;
    }
} 

if(isset($_GET["v"]) == "test1")

你的表达式是错误的,因为isset()返回一个布尔值,后来你正在测试一个字符串  if(bool == string)始终为假