提问人:Nancy 提问时间:5/27/2023 更新时间:5/27/2023 访问量:43
当变量为空时,如何在 PHP 中激活 URL 导航?
How can I make a URL navigation active in PHP when the variable is empty?
问:
我有一个问题,使 url 表单导航处于活动状态,以便它亮起。
我有这个代码,但它不起作用。我使用php已经有一段时间了,如果变量为空,它不再接受。 有人可以帮我吗? 代码如下:
<?php
$current1 = ""; $current2 = "";
if (isset($_GET['mode']))
//mode not empty
{
$mode = $_GET[ 'mode'];
echo $mode."<br>";
if ($mode = "index") { $current1 = "active";$current2="";}
elseif ($mode = "contact") { $current2 = "active";$current1="";}
}
else
//mode empty
{
$current1 = "active";$current2="";
}
?>
答:
0赞
Rob Eyre
5/27/2023
#1
也许这可能是一种更简单的方法:
// default
$current1 = 'active';
$current2 = '';
if (!empty($_GET['mode']) && ($_GET['mode'] == 'contact')) {
$current1 = '';
$current2 = 'active';
}
评论
0赞
Nancy
5/27/2023
谢谢大家的建议,但我找到了一个简单的解决方案
-1赞
Akam
5/27/2023
#2
您的代码存在一些问题,导致其无法正常工作。让我们浏览一下它们并提供更正后的代码:
比较运算符:在 if 语句中,您使用的是赋值运算符 =,而不是比较运算符 == 或 ===。要比较值,您需要使用 == 进行松散比较,或使用 === 进行严格比较。
多个条件:在 if 语句中比较多个条件时,应使用逻辑运算符 && (AND) 或 ||(或)组合条件。
变量赋值:活动类的赋值在代码中是相反的。当模式为“index”时,您已将其分配给 $current 1,当模式为“contact”时,您已将其分配给 $current 2。它应该是相反的。
下面是更正后的代码:
$current1 = "";
$current2 = "";
if (isset($_GET['mode'])) {
$mode = $_GET['mode'];
echo $mode . "<br>";
if ($mode === "index") {
$current1 = "active";
$current2 = "";
} elseif ($mode === "contact") {
$current1 = "";
$current2 = "active";
}
} else {
$current1 = "active";
$current2 = "";
}
在此更新的代码中,我们使用 === 运算符进行严格比较。当模式为“index”时,我们将活动类分配给 $current 1,当模式为 “contact” 时,我们将活动类分配给 $current 2。现在,使用逻辑运算符正确分隔条件。
评论
0赞
Nancy
5/27/2023
谢谢你的回答,但我找到了一个简单的解决方案,我只是把它放在“活动”应该在 a href 中的位置。<?php if(!isset($_GET['mode']) OR $_GET['mode']==“home”){ echo “active”;} ?>
0赞
Debuqer
5/27/2023
#3
Isset 确定变量是否已声明且不同于 null
让我们看看官方的PHP示例
$var = '';
// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
echo "This var is set so I will print.";
}
因此,您可以使用 empty 来检查 $_GET['mode'] 是否为空值,对于您的答案,您可以这样编码:
$modes = [
'index' => '',
'contact' => '',
];
$mode = (isset($_GET['mode']) and !empty($_GET['mode'])) ? $_GET['mode'] : 'index';
$modes[$mode] = 'active';
// in case you need your variable:
$current1 = $modes['index'];
$current2 = $modes['contact'];
评论
0赞
Nancy
5/27/2023
谢谢你的回答,但我找到了一个简单的解决方案,我只是把它放在“活动”应该在 a href 中的位置。<?php if(!isset($_GET['mode']) OR $_GET['mode']==“home”){ echo “active”;} ?>
评论
==
if ($mode = "index")
$mode