我有一个现有的 PHP应用程序,我试图插入pbpBB. phpBB具有与我现有的一些函数同名的函数.这会生成以下错误:
E_COMPILE_ERROR Error in file »functions.php« at line 121: Cannot redeclare redirect() (previously declared in /.../httpdocs/forum/includes/functions.php:2289)
我可以重命名phpBB应用程序中的函数,但这可能会导致将来的更新出现问题.在我的代码中,我将不得不重命名该函数的512个实例.命名空间需要同样的努力.
有没有办法指定只有在从特定目录调用时才应使用特定函数?例如,我将redirect()定义为从httpdocs / forum调用时使用的函数,以及从/ httpdocs / myapp调用时代码中其他地方使用的具有相同名称的另一个函数.似乎它很实用,但我找不到这样的解决方案.
最佳答案 这正是命名空间的用途,但是phpBB虽然古老而且非常苛刻,并且不使用命名空间,所以我猜这不适合你.您最好的选择是重命名应用程序中的冲突函数,或者只是将它们分开,只需在iframe中显示您的phpBB论坛并调用它.如果您现有的php应用程序有会话需要集成,希望您将会话保存在数据库中,并且您可以编写连接器以在两个应用程序之间传递会话数据而不会有太多麻烦.否则,你将度过糟糕的一天.