四处走动不能重新声明PHP中的错误

时间:2011-03-07 09:42:57

标签: php wordpress mybb

我正在尝试整合WordPress和MyBB论坛。具体来说,我只想将WordPress的导航栏(新菜单)添加到我的MyBB网站。在CODEX示例之后,我将以下内容添加到myBB安装的header.php中:

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

但是,导航到论坛时出现500错误。检查error_log显示了这个:

  

PHP致命错误:无法在/home/linuxdis/public_html/wp-includes/capabilities.php上重新声明is_super_admin()(之前在/home/linuxdis/public_html/forum/inc/functions.php:5484中声明) 1213

Bummer,功能名称相同。除了重命名其中一个功能并且可能完全破坏一切之外,还有办法解决这个问题吗? :/

1 个答案:

答案 0 :(得分:3)

用户require_once()而不是require(),它将确保每页只包含一次该文件。

虽然在这种情况下不理想,但您可以将每个函数包装在function_exists()检查中:

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

如果与WP / MyBB发生直接冲突,这可能是你唯一的选择,如果他们都需要is_super_admin(),你就会被卡住。