function getContactActiveEmails($eid)
{
global $db;
if ($eid) {
$sql = "SELECT email FROM activeEmails WHERE id = $eid";
return $db->GetCol($sql);
}
}
我收到错误“无法重新声明功能getContactActiveEmails
”
它给出的行号是函数的最后一行 - }
使用require_once
调用所有文件。这是整个代码库中唯一定义getContactActiveEmails
的地方。这是为什么?
答案 0 :(得分:6)
从错误中可以清楚地看出,你的函数被定义了两次,因此你得到了错误。
我建议在声明之前检查函数是否已定义。
if (!function_exists('getContactActiveEmails'))
{
function getContactActiveEmails($eid)
{
global $db;
if ($eid) {
$sql = "SELECT email FROM activeEmails WHERE id = $eid";
return $db->GetCol($sql);
}
}
}
答案 1 :(得分:4)
getcontactactiveemails
。Reflection
扩展名反射的使用示例:
if(function_exists('getContactActiveEmails')){
$myfunc = new ReflectionFunction('getContactActiveEmails');
echo 'Function is declared in '.$myfunc->getFileName().
' starting from line '.$myfunc->getStartLine().
' to '.$myfunc->getEndLine();
die;
}
的更多信息
答案 2 :(得分:0)
我遇到了同样的问题。我有一个名为adhoc.inc.php的标准文件,它被导入到我网站上的几乎每个php文件中。由于没有对任何代码进行任何更改,我开始看到错误
[13-Jul-2013 21:19:22 Australia/Sydney] PHP Fatal error: Cannot redeclare checkloggedin() in /Applications/MAMP/htdocs/mycobber/util/adhoc.inc.php on line 4
最初我只在几个文件中得到它所以我只是注释掉了这个导入并且它有效。突然间,再没有任何变化,我在我加载的每个文件中都得到了这个。我认为这不是我所以我重新启动了我的MAMP服务器(apache和mysql)然后它就消失了。
有没有人见过这个?
答案 3 :(得分:0)
如果您在循环中定义了函数,则会发生此错误,因为您在每次迭代中都尝试定义它。