【问题标题】:Pushing PHP function value to another file将 PHP 函数值推送到另一个文件
【发布时间】:2016-01-07 04:35:54
【问题描述】:

我有一个文件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"。有一些困难,想不通。

【问题讨论】:

  • 你没有传递 $menu,而且该函数返回理论参数 $menu 中的第一项。最好让lis 本身完全由 PHP 生成,然后输出。
  • 对不起。我是 PHP 新手。我以为我确实通过了 $menu 函数 mainNav($menu) {
  • 你的意思是用这样的东西生成 li: com">' 。 $菜单[2]。 ''
  • 虽然我更喜欢这种事情的&lt;?php [loop stuff]{ ?&gt; raw html &lt;?php echo("dynamic"); ?&gt; raw html &lt;?php } 结构。减少反斜杠\\瘟疫。

标签: php css menu header


【解决方案1】:
  1. 您正在尝试调用函数mainNav() 而不使用任何参数。但是您使用参数$menu 声明了函数。所以,php 找不到函数mainNav() 没有任何参数。
  2. 在函数mainNav($menu) 中,您尝试访问变量$title,该变量尚未在此函数中定义。所以,如果你想访问可验证的$title,你应该使用$this-&gt;title
  3. 您的函数在循环的第一次迭代后返回值。我想,这是错误的。使用函数in_array 而不是循环。

【讨论】:

    【解决方案2】:

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

    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>
    

    【讨论】:

    • foreach 不是这样工作的......在foreach 循环之前,你是returning。
    • 对不起!我的错。现已更正。
    • 好吧,现在问题是语义上的——只要$title 包含在$menu 中,它就会返回“活动”(在示例中 sn-ps 总是如此)。我将删除不赞成票,因为您还解决了范围界定问题^_^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2014-02-04
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多