将PHP函数值推送到另一个文件


Pushing PHP function value to another file

我有一个文件Page.php

<?php
$title = "1";                  
$menu[0] = "1";   
$menu[1] = "2";
function mainNav($menu) {
    foreach ($menu as $value){ 
        if ($title == $value){   
            $active = "active";
        } 
        else {
            $active = " ";
        }
        echo $active ;
        return $active;
    }
}
include "header.php"; 

和一个文件header.php

<li class="mainNav <?php mainNav(); ?>" style="z-index:8">
<a href="http://www.com"><?php echo $menu[7]; ?></a></li> 

如果$title == $menu[x],我希望header.php包含li class="mainNav active"。否则为li class="mainNav"。遇到了一些困难,无法解决。

  1. 您正在尝试在没有任何参数的情况下调用函数mainNav()。但是您用参数$menu声明了函数。因此,php无法在没有任何参数的情况下找到函数mainNav()
  2. 在函数mainNav($menu)中,您正试图访问尚未在此函数中定义的变量$title。因此,如果您想访问可验证的$title,您应该使用$this->title
  3. 函数在循环的第一次迭代后返回值。我认为,这是错误的。使用函数in_array而不是循环

如果您只想将类添加为菜单的"活动"类,那么您可以使用以下代码:

function mainNav($title) {
    $menu = array("Menu1","Menu2","Menu3");
    $html = '';
    foreach ($menu as $value){ 
        if ($title == $value){   
            $html .= '<li class="mainNav active" style="z-index:8">'.$value.'</li>';
        } else {
            $html .= '<li class="mainNav" style="z-index:8">'.$value.'</li>';
        }
    } 
    return $html;
}

在header.php 中像这样的函数中传递活动菜单

<ul><?php echo mainNav('Menu1'); ?></ul>