2014-06-18 243 views
0

我的脚本返回以下错误...奇怪的PHP “致命错误:不能重新声明” 错误

Fatal error: Cannot redeclare connecttodatabase() (previously declared in /var/www/api/connecttodatabase.php:4) in /var/www/api/connecttodatabase.php on line 6 

而下面是connecttodatabase.php文件...

<?php 
    function connecttodatabase() 
    { 
     $con = @mysqli_connect("localhost", "name", "password", "database"); 
     return $con; 
    } 
?> 

我真的不明白这个错误,因为第6行只是关闭的大括号(})

我认为错误意味着它认为我宣布功能connecttodatabase()进入不同的地方,但显然我做了不是。

+3

你有这个函数声明两次。您可能在两次定义的文件中包含相同的文件。 –

+0

为什么不改变功能名称并确认。你是否? – zod

+0

该错误表示您正在尝试重新声明第6行中已经在第4行声明的函数。是您发布**完整**代码的内容?如果不知道更多关于您的问题,我们无法帮助您。 – esqew

回答

1

正如其他人在评论中所说的,这很可能是因为你已经在你的代码中包含了两次connecttodatabase.php,并且你肯定定义了两次函数。不要挂断为什么它是第6行;第2行会更有帮助,但是第6行是函数定义结束的位置,所以可以说。你可以有一个“一天一日”的全年日历来了解PHP的特质,并且有足够的剩余时间用于续集。正如其他人也暗示的那样,一些基本的调试将确认您是否包含该文件不止一次,也包括来自哪里。

确保您的代码使用include_once或require_once。

+0

我将所有的代码都改为'require_once',但问题仍然存在。还有其他建议吗? – user3558410

+0

基本的调试技巧将建议尝试在文件开始处记录回溯以查看它包含的位置。正如已经提到的那样,重命名函数也是一个有用的测试。 – Nick

+0

@Nick记录回溯?你知道,你可以在代码库中对'function connecttodatabase'进行文件搜索。 – JakeGould

相关问题