Php 无法重新声明函数错误
我收到错误“无法重新声明函数Php 无法重新声明函数错误,php,Php,我收到错误“无法重新声明函数getContactActiveEmails” 它给出的行号是函数的最后一行} 使用require\u调用所有文件一次。这是整个代码库中唯一定义getContactActiveEmails的地方。这是为什么?从错误中可以清楚地看出,您的函数定义了两次,因此您得到了错误 我建议在声明函数之前检查函数是否已经定义 function getContactActiveEmails($eid) { global $db; if ($eid) {
getContactActiveEmails
”
它给出的行号是函数的最后一行}
使用
require\u调用所有文件一次
。这是整个代码库中唯一定义getContactActiveEmails
的地方。这是为什么?从错误中可以清楚地看出,您的函数定义了两次,因此您得到了错误
我建议在声明函数之前检查函数是否已经定义
function getContactActiveEmails($eid)
{
global $db;
if ($eid) {
$sql = "SELECT email FROM activeEmails WHERE id = $eid";
return $db->GetCol($sql);
}
}
从错误中可以清楚地看出,函数定义了两次,因此您得到了错误 我建议在声明函数之前检查函数是否已经定义
function getContactActiveEmails($eid)
{
global $db;
if ($eid) {
$sql = "SELECT email FROM activeEmails WHERE id = $eid";
return $db->GetCol($sql);
}
}
@Shakti Singh的解决方案将起作用,但请记住,您正在失去对代码的控制-您不知道该函数在哪里声明以及它返回什么,因此我建议查找它
getcontactactiveemails
一样在某处声明Reflection
extension来说明这个函数if (!function_exists('getContactActiveEmails'))
{
function getContactActiveEmails($eid)
{
global $db;
if ($eid) {
$sql = "SELECT email FROM activeEmails WHERE id = $eid";
return $db->GetCol($sql);
}
}
}
关于@Shakti Singh的解决方案的更多信息将起作用,但请记住,您正在失去对代码的控制-您不知道该函数在何处声明以及返回什么,因此我建议查找它
getcontactactiveemails
一样在某处声明Reflection
extension来说明这个函数if (!function_exists('getContactActiveEmails'))
{
function getContactActiveEmails($eid)
{
global $db;
if ($eid) {
$sql = "SELECT email FROM activeEmails WHERE id = $eid";
return $db->GetCol($sql);
}
}
}
更多关于我也收到了同样的问题。我有一个名为adhoc.inc.php的标准文件,它被导入到我网站上几乎所有的php文件中。由于一夜之间没有对任何代码进行任何更改,我开始看到错误
if(function_exists('getContactActiveEmails')){
$myfunc = new ReflectionFunction('getContactActiveEmails');
echo 'Function is declared in '.$myfunc->getFileName().
' starting from line '.$myfunc->getStartLine().
' to '.$myfunc->getEndLine();
die;
}
最初,我只在几个文件中得到了它,所以我只是注释掉了这个导入,它成功了。突然,再次没有变化,我在加载的每个文件中都得到了这个。我想这不是我,所以我重新启动了我的MAMP服务器(apache和mysql),然后它就消失了
以前有人见过这个吗?我也有同样的问题。我有一个名为adhoc.inc.php的标准文件,它被导入到我网站上几乎所有的php文件中。由于一夜之间没有对任何代码进行任何更改,我开始看到错误
if(function_exists('getContactActiveEmails')){
$myfunc = new ReflectionFunction('getContactActiveEmails');
echo 'Function is declared in '.$myfunc->getFileName().
' starting from line '.$myfunc->getStartLine().
' to '.$myfunc->getEndLine();
die;
}
最初,我只在几个文件中得到了它,所以我只是注释掉了这个导入,它成功了。突然,再次没有变化,我在加载的每个文件中都得到了这个。我想这不是我,所以我重新启动了我的MAMP服务器(apache和mysql),然后它就消失了
以前有人见过吗?如果在循环中定义了函数,则会发生此错误,因为您在每次迭代中都试图定义它。如果在循环中定义了函数,则会发生此错误,因为您在每次迭代中都试图定义它。在不同的文件中是否有同名函数,或者使用此函数调用文件的多个副本?可能您在某个地方意外调用了带有关键字“function”的函数?这是定义getContactActiveEmails的唯一位置。其他地方有两个地方叫它$电子邮件=getContactActiveEmails($this->recipientID)$电子邮件=getContactActiveEmails($eid);请确保未使用内置类型函数名作为用户定义函数名。此函数是否在某种循环中声明?是否在不同的文件中有同名函数,或使用此函数的文件的多个副本?可能是使用关键字“function”调用该函数某个偶然的地方?这是唯一定义getContactActiveEmails的地方。其他地方有两个地方叫它$电子邮件=getContactActiveEmails($this->recipientID)$电子邮件=getContactActiveEmails($eid);请确保您没有使用内置类型函数名作为用户定义函数名。这个函数是在某种循环中声明的吗?这很有效-希望我们稍后会解决实际问题,但这让我回到实际工作中。谢谢这起作用了——希望我们以后能解决实际问题,但这让我回到了真正的工作中。谢谢隐马尔可夫模型。。。问题还是答案?如果是前者,请张贴…:-)隐马尔可夫模型。。。问题还是答案?如果是前者,请张贴…:-)