Php 注意:带开关的数组中存在未定义的偏移错误
这是我的PHP代码,用于选择菜单。 这是错误的工作,请帮助我 代码Php 注意:带开关的数组中存在未定义的偏移错误,php,arrays,switch-statement,Php,Arrays,Switch Statement,这是我的PHP代码,用于选择菜单。 这是错误的工作,请帮助我 代码 <?php $page_url = array(); $page_url[0]= "/bookslibrary.net/index.php"; $page_url[1]= "/bookslibrary.net/about.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>
");
?>
问题在于,$page\u urlActive
的特定索引(0-5)可能无法根据活动页面进行设置
更好的方法是重构代码,在$page\u url
数组上循环。如果当前$page\u url
等于请求的页面,则在循环内进行测试。如果是,则输出相应的类
属性。这将删除大量不必要的代码(例如,开关
,$page\u urlActive
)
虽然我提倡干净的代码,但归根结底,这只是一个通知,而不是一个硬错误。您的$page\u urlActive
只包含一个项目,其键取决于您所在的页面。如果您试图回显所有索引的元素,则可以通过使用所有索引初始化数组来消除此通知:
$page_urlActive = array_fill(0, 6, '');
没有第34行。在发布代码和行引用时,请做一些突出显示行的操作。就像代码注释一样。第34行是:您是否检查了$page\u urlActive[1]
是否已实际设置?问题已根据您的建议解决。