2014-09-26 101 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。

错误消息中的“先前声明”会告诉你第一个声明的位置,并且错误消息的最后会告诉你第二个位置在哪里。

相关问题