-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問題は、アクティブなページによっては、の特定のインデックス(0〜5)が設定されない場合があることです。

より良いアプローチは、コードをリファクタリングして$page_url配列をループすることです。ループテスト内で、電流$page_urlが要求されたページと等しいかどうかをテストします。その場合は、適切なclass属性を出力します。これにより、多くの不要なコードが削除されます(例switch:)$page_urlActive

私はクリーンなコードを提唱していますが、結局のところ、これは単なる通知であり、ハードエラーではありません。

于 2012-11-08T20:29:11.103 に答える
0

$page_urlActive表示しているページに応じてキーが付いたアイテムが1つだけ含まれています。そして、すべてのインデックスの要素をエコーし​​ようとしています。すべてのインデックスを含む配列を初期化することで、この通知を取り除くことができます。

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