微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅在从特定子目录调用时才执行PHP函数

我有一个现有的 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应用程序有会话需要集成,希望您将会话保存在数据库中,并且您可以编写连接器以在两个应用程序之间传递会话数据而不会有太多麻烦.否则,你将度过糟糕的一天.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐