-1

这是我的带有选项的菜单的 PHP 代码。它有错误,请帮助我。

代码

<?php
                            $page_url = array();
                            $page_url[0]= "/bookslibrary.net/index.php";
                            $page_url[1]= "/bookslibrary.net/about.php";
                            $page_url[2]= "#";
                            $page_url[3]= "/bookslibrary.net/become-member.php";
                            $page_url[4]= "#";
                            $page_url[5]= "/bookslibrary.net/contact.php";

                            $page_urlActive = array();
                            $css_active = "class='active'";

                            switch ($_SERVER['PHP_SELF'])
                            {
                                case $page_url[0]: $page_urlActive[0] = $css_active; break;
                                case $page_url[1]: $page_urlActive[1] = $css_active; break;
                                case $page_url[2]: $page_urlActive[2] = $css_active; break;
                                case $page_url[3]: $page_urlActive[3] = $css_active; break;
                                case $page_url[4]: $page_urlActive[4] = $css_active; break;
                                case $page_url[5]: $page_urlActive[5] = $css_active; break;
                            } echo ("
                                <li $page_urlActive[0] ><a href='".$page_url[0]."'>Home</a></li>
                                <li $page_urlActive[1] ><a href='".$page_url[1]."'>About</a></li>
                                <li $page_urlActive[2] ><a href='".$page_url[2]."'>Books of the Month</a></li>
                                <li $page_urlActive[3] ><a href='".$page_url[3]."'>Become a Member</a></li>
                                <li $page_urlActive[4] ><a href='".$page_url[4]."'>Ahlus-Sunnah</a>
                                    <ul>
                                        <li><a href='#'>Web Directory</a></li>
                                        <li><a href='#'>Add Your Website</a></li>
                                    </ul>
                                </li>
                                <li $page_urlActive[5] ><a href='".$page_url[5]."'>Contact</a></li>
                            ");
                        ?>

错误

注意:未定义的偏移量:第 34 行 (...FILE_PATH...)header.php 中的 1

4

2 回答 2

0

$page_urlActive只包含一个项目,一个关键取决于你所在的页面。并且您正在尝试为所有索引回显元素,您可以通过使用所有索引初始化数组来摆脱此通知:

$page_urlActive = array_fill(0, 6, '');
于 2012-11-08T20:31:19.330 回答
0

问题是$page_urlActive可能无法根据活动页面设置的特定索引(0-5)。

更好的方法是重构代码以循环遍历$page_url数组。如果当前$page_url等于请求的页面,则在循环测试内部。如果是,则输出适当的class属性。这将删除许多不必要的代码(例如switch$page_urlActive)。

虽然我提倡干净的代码,但归根结底,这只是一个通知,而不是一个硬性错误

于 2012-11-08T20:29:11.103 回答