-1

在我的侧边栏中,为带有此代码的活动链接添加了类:

<?php echo ($_GET['do'] == "") ? "class=\"current\"": "";?>

// This is root link

一切正常,但我的 error_log 文件中有错误....

这是在下一个菜单项中:

<?php echo ($_GET['do'] == "add_account") ? "class=\"current\"": "";?>

也可以工作但没有错误!所以我需要在“”中添加一些东西?或者我怎样才能更好地使用 php 在菜单中制作根链接标记?

谢谢意见!!问候 Makromat

4

2 回答 2

2
<?php echo (isset($_GET['do']) && $_GET['do'] == "add_account") ? "class='current'" : ""; ?>

检查它是否存在,然后检查它持有的值。

于 2013-11-06T14:45:16.477 回答
1

访问 PHP 中(尚不存在)的变量(或数组索引,或对象属性)会触发Notice(不是错误)。访问时就是这种情况$_GET['do'],不存在。

为了解决这个问题,请替换:

<?php echo ($_GET['do'] == "") ? "class=\"current\"": "";?>

和:

<?php echo !isset($_GET['do']) ? "class=\"current\"": "";?>

这同样适用于可能不存在的变量(或数组索引或对象属性)。因此,当您检查$_GET['do']是否相等时,"""add_account"需要先检查 if isset($_GET['do'])

这意味着您还需要编辑$_GET['do']代码中第二次出现的 :

<?php echo ($_GET['do'] == "add_account") ? "class=\"current\"": "";?>

变成:

<?php echo (isset($_GET['do']) AND $_GET['do'] == "add_account") ? "class='current'" : ""; ?>

就像@Houssni 说的那样。

于 2013-11-06T14:41:13.250 回答