我正在开发一个网站,我正试图为我的标题包括我的导航菜单(这里的主要主题)。
导航菜单header.php文件中的代码如下:
<!-- topmenu -->
<div class="menu-header">
<div class="container">
<ul class="top menu">
<?php
$nav = array("Home","About","Portfolio","Products","Services","Contact");
foreach($nav as $item){
if($item == $title){
echo "<li class='current-menu-ancestor parent'><a href='$item.php'>$item</a></li>";
}else{
echo "<li><a href='$item.php'>$item</a></li>"; }
}
?>
</ul>
</div>
</div>
<!--/ topmenu -->
您可能注意到,在代码中是条件if($item == $title)
。在我的index.php中,我包含了$title="Home";
,我打算在这个if语句中使用它。
在我的index.php页面上,我包含了以下代码:
<?php
include("header.php");
$title = "Home";
?>
谁能告诉我我哪里错了?
没有答案,但是注释不适合格式化的代码。您可能想要删除一些HTML:
$class = '';
if($item == $title) {
$class = ' class"current-menu-ancestor parent"';
}
echo "<li{$class}><a href='$item.php'>$item</a></li>";
如果您决定更改菜单结构中的某些内容,并且只更改菜单HTML的一个副本,那么复制HTML可能会导致以后的维护问题。
header.php无法预知未来。如果您希望在include中设置变量,则需要在
之前设置它:<?php
$title = "Home";
include("header.php");
?>
你只是换了行。
另外,我建议您在开发时启用最高级别的错误报告,因为它将在键入代码时可能发生的常见错误向您发出警告。
您可以通过在脚本的顶部添加以下两行来做到这一点:
error_reporting(~0);
ini_set("display_errors", "1″);
您需要在包含header.php之前设置$title !
。
<?php
$title = "Home";
include("header.php");
?>