gpt4 book ai didi

php - 使用 if 和 else 语句错误

转载 作者:可可西里 更新时间:2023-10-31 23:52:06 24 4
gpt4 key购买 nike

我已经创建了两个链接,我希望在其中更改页面内容。问题是 URL 发生了变化,但页面内容没有变化。

<h3>Filter Results</h3>
<p><a href="index.php?filter='Action'>Action</a></p>
<p><a href="index.php?filter='Comedy'">Comedy</a></p>
if (isset($_GET['filter']) == 'Action') {
echo 'Action';
}
else if (isset($_GET['filter']) =='Comedy') {
echo 'Comedy';
}

总是输出第一个链接信息“Action”。

最佳答案

您的链接有问题:

<p><a href="index.php?filter=Action">Action</a></p>
<p><a href="index.php?filter=Comedy">Comedy</a></p>
<!-- ^ ^ No single quotes (' ') -->

Yogesh Suthar pointed it out first

此外, isset() 将返回一个 bool 值(truefalse;取决于是否设置了变量)。您正在将 bool 值与字符串进行比较, a string will always be converted into TRUE (除非字符串是“false”或类似的),所以基本上,如果设置了变量,第一个条件将始终匹配。

你想要

if (isset($_GET["filter"]) && $_GET["filter"] === "Action")

注意 === 的使用,这将确保变量正是您所想的那样,而不是某种其他类型的变量。

还有几点(从其他答案中无耻地偷来)

  • 如果有多个可能的过滤器,检查一次变量是否存在,并使用 switch/case block 来确定它是哪个:

    if(isset($_GET['filter'])) {
    switch($_GET['filter']) {
    case 'Action':
    echo 'Action';
    break;
    case 'Comedy':
    echo 'Comedy';
    break;
    }
    }

关于php - 使用 if 和 else 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17877596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com