我的函数没有';我不处理标签


My function doesn't work on || tags

我已经编写了一个函数,如果页面与我声明的页面相同,则可以使菜单向下滚动。

功能看起来像这个

 function menu_current()
 {
    $current = basename($_SERVER['REQUEST_URI']);
    if ($current === "index?p=config" || "index?p=maintenance")
        echo "class='"nav-top-item suballowed current'" ";
    else
        echo "class='"nav-top-item suballowed'" ";
 }

如果我只声明1页,它就可以完美工作

if ($current === "index?p=config")

但不是更多。如何解决这个问题?有没有一种方法可以在一个variable中的||标签之间declare所有网站,而不是像我那样写它们?

更换此

if ($current === "index?p=config" || "index?p=maintenance")

带有

 if ($current === "index?p=config" || $current ===  "index?p=maintenance")

否则PHP不知道什么应该等于index?p=maintenance

如果每次都设置相等检查的两侧,则可以使用您的方法:

if ($current === "index?p=config" || $current === "index?p=maintenance") { ...

也许是一个更"可读"的解决方案:

if (in_array($current, array( 'index?p=config', 'index?p=maintenance' )) { ...

另一个选项是使用带有默认值的switch语句。

function menu_current()
{
    $current = basename($_SERVER['REQUEST_URI']);
    switch($current) {
        case "index?p=config":
        case "index?p=maintenance":
            echo "class='"nav-top-item suballowed current'" ";
            break;
        default:
            echo "class='"nav-top-item suballowed'" ";
    }
}

这是正确的代码

  function menu_current()
     {
        $current = basename($_SERVER['REQUEST_URI']);
        if ($current == "index?p=config" || $current == "index?p=maintenance")
            echo "class='"nav-top-item suballowed current'" ";
        else
            echo "class='"nav-top-item suballowed'" ";
     }