2014-09-26 135 views
2

我試圖計算出年齡,但我收到此錯誤致命錯誤:不能重新聲明calculateAge()之前聲明

Fatal error: Cannot redeclare calculateAge() (previously declared


$age = $row3['DBirth']; 

    function calculateAge($date) 
    { 
    list($year,$month,$day) = explode("-",$date); 

    $year_diff = date("Y") - $year; 

    $month_diff = date("m") - $month; 

    $day_diff = date("d") - $day; 

    if ($day_diff < 0 || $month_diff < 0) $year_diff--; 

     return $year_diff; 

    } 

    echo 'Student age is'.calculateAge($age).' years old'; 

任何想法? 謝謝,

+0

它的計算完美,但如果你已經包含了一些其他文件也具有相同的功能,那麼你必須刪除它,然後再次檢查 – 2014-09-26 13:15:35

+0

或繞包圍'if(function_exists('calculateAge')== FALSE){} – 2014-09-26 13:16:55

+0

通常包含兩次相同文件的結果。在你的代碼中將include()更改爲include_once()應該修復它:) include_once()應該用於你使用的任何類或過程代碼,爲簡單的HTML表單或菜單等保存include()。 – 2014-09-26 13:21:30

回答

0

這意味着你有兩次相同的功能。重命名其中一個,然後它應該工作。

有時在APC緩存期間發生此錯誤。然後你必須清除APC及其工作。

0

該功能已經存在,您的代碼中有兩個function calculateAge(... s。

錯誤消息中的「先前聲明」會告訴你第一個聲明的位置,並且錯誤消息的最後會告訴你第二個位置在哪裏。

相關問題