致命错误:不能重新声明calculateAge()之前声明
问题描述:
我试图计算出年龄,但我收到此错误致命错误:不能重新声明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';
任何想法? 谢谢,
答
这意味着你有两次相同的功能。重命名其中一个,然后它应该工作。
有时在APC缓存期间发生此错误。然后你必须清除APC及其工作。
答
该功能已经存在,您的代码中有两个function calculateAge(...
s。
错误消息中的“先前声明”会告诉你第一个声明的位置,并且错误消息的最后会告诉你第二个位置在哪里。
它的计算完美,但如果你已经包含了一些其他文件也具有相同的功能,那么你必须删除它,然后再次检查 – 2014-09-26 13:15:35
或绕包围'if(function_exists('calculateAge')== FALSE){} – 2014-09-26 13:16:55
通常包含两次相同文件的结果。在你的代码中将include()更改为include_once()应该修复它:) include_once()应该用于你使用的任何类或过程代码,为简单的HTML表单或菜单等保存include()。 – 2014-09-26 13:21:30