2014-06-18 441 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

相關問題