注意:带有开关的数组中未定义的偏移量错误

时间:2012-11-08 20:24:59

标签: php arrays switch-statement

这是我选择菜单的PHP代码。 它处理错误,请帮助我。

CODE

<?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

2 个答案:

答案 0 :(得分:0)

问题是$page_urlActive的特定索引(0-5)可能无法设置,具体取决于活动页面。

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

虽然我提倡干净的代码,但在一天结束时,这只是通知,而不是硬错误

答案 1 :(得分:0)

您的$page_urlActive只包含一个项目,其中一个项目取决于您所在的页面。并且您正在尝试回显所有索引的元素,您可以通过初始化数组和所有索引来消除此通知:

$page_urlActive = array_fill(0, 6, '');