Обход не может повторно объявить ошибку в PHP - PullRequest
1 голос
/ 07 марта 2011

Я пытаюсь интегрировать форумы WordPress и MyBB. В частности, я просто хочу добавить панель навигации WordPress (новое меню) на мой веб-сайт MyBB. Следуя примеру CODEX, я добавил следующее в мой header.php моей установки MyBB:

require('/home/linuxdis/public_html/wp-blog-header.php');

Однако при переходе на форум я получаю 500 ошибок. Изучение error_log показало это:

Неустранимая ошибка PHP: невозможно переопределить is_super_admin () (ранее объявленный в /home/linuxdis/public_html/forum/inc/functions.php:5484) в /home/linuxdis/public_html/wp-includes/capabilities.php в сети 1213

Облом, функции названы одинаково. Помимо переименования одной из функций и, возможно, нарушения абсолютно всего, есть ли способ обойти это? : /

1 Ответ

3 голосов
/ 07 марта 2011

Пользователь require_once() вместо require(), и он будет гарантировать, что этот файл будет включаться только один раз на страницу.

Хотя в этом случае это не идеально, вы можете заключить каждую функцию в function_exists () check:

if(!function_exists('myfunc') {
    function myfunc() {....}
}

Это может быть вашим единственным вариантом, если есть прямые столкновения с WP / MyBB, но вы застряли, если им обоим нужно is_super_admin().

...