function getContactActiveEmails($eid) { global $db; if ($eid) { $sql = "SELECT email FROM activeEmails WHERE id = $eid"; return $db->GetCol($sql); } }
Я получаю сообщение об ошибке «Can not getContactActiveEmails
function getContactActiveEmails
»
Номер строки, которую он дает, является последней строкой функции -}
Все файлы вызывают с require_once
. Это единственное место во всей кодовой базе, где getContactActiveEmails
. Почему это?
Из-за ошибки ваша функция четко определена, поэтому вы получаете ошибку.
Я бы рекомендовал проверить, была ли функция уже определена до ее объявления.
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
Пример использования рефлексии:
if(function_exists('getContactActiveEmails')){ $myfunc = new ReflectionFunction('getContactActiveEmails'); echo 'Function is declared in '.$myfunc->getFileName(). ' starting from line '.$myfunc->getStartLine(). ' to '.$myfunc->getEndLine(); die; }
Подробнее о Reflection
У меня такая же проблема. У меня есть стандартный файл 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), а затем он ушел.
Кто-нибудь видел это раньше?
Эта ошибка возникает, если ваша функция определена в цикле, поскольку вы пытаетесь определить ее на каждой итерации.