2016-09-21 97 views
-1

我有这个PHP脚本:不能重新声明RecursiveCategories()错误

<?php $categories = $this->requestAction('categories/topmenu'); 
    function RecursiveCategories($array) 
    { 
     if (count($array)) 
     { 
      foreach ($array as $category) 
      { 
       if (count($category['children'])) 
       { 
        echo '<li >'; 
        echo '<a href="/v-n/'.$category['Category']['id'].'-'.$category['Category']['slug'].'" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">'; 
        echo '<div class="sub-menu">'.$category['Category']['name'].'</div>'; 
        echo '</a>'; 
        echo '<div class="tn-gnavsub">'; 
        echo '<div class="gnavsub">'; 
        echo '<ul class="menufix">'; 
        RecursiveCategories($category['children']); 
        echo '</ul>'; 
        echo '</div>'; 
        echo '</div>'; 
        echo '</li>'; 
       } 
       else 
       { 
        echo '<li><a href="/v-n/'.$category['Category']['id'].'-'.$category['Category']['slug'].'"> '.$category['Category']['name'].'</a></li>'; 
       } 
      } 
     } 

    } 
?> 
<?php RecursiveCategories($categories); ?> 

我得到这个错误:

Fatal error: Cannot redeclare RecursiveCategories() (previously declared in :36) in... on line 64

+0

您是否包含php文件? – developer

+0

是包含一个php文件 –

+0

您可能包含该文件不止一次,也可能是该问题 – developer

回答

0

您已经包含了相同的函数定义通过包含语句或一些其他的文件,所以这就是为什么你有这个问题。 使用以下内容:

 
    if (!function_exists('RecursiveCategories')) { 
     function RecursiveCategories($array) 
     { 
     //code goes here 
     } 
    } 

建议:在lib文件中添加所有函数,并使用include_once命令包含lib.php文件。

相关问题