我的功能不适用于||标签

时间:2013-07-09 18:16:43

标签: php function

如果页面与我声明的页面相同,我已经编写了一个使菜单滚动的功能。

该功能如下所示

 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")

但不是更多。如何解决这个问题?有没有办法declare ||variable之间的所有网站,而不是像我一样写它们?

4 个答案:

答案 0 :(得分:4)

替换此

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

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

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

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:1)

另一个选择是使用带有默认值的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\" ";
    }
}

答案 3 :(得分:0)

这是正确的代码

  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\" ";
     }