【发布时间】:2012-04-21 19:47:31
【问题描述】:
我和几个朋友在一个网站上工作,最近,用户抱怨一个相当重要的功能除了返回一个空白页面之外什么也没做。这只发生在某些用户身上,而其他用户可以完美地使用它。
我查阅了调试输出,结果发现一个函数被声明了两次。一次在功能的主页 (foo.php) 和一个在获得 require_once'ed 的文件中。显然,我现在正走在修复它的正确道路上,但让我感到困惑的是,很多人在访问该页面时没有遇到这个问题。两个函数声明是相同的;身体似乎已从一个文件复制+粘贴到另一个文件。这些函数声明都不是有条件的;它们都应该总是发生。
是否有人知道 PHP 能够处理我的错误并使页面正常工作的情况,尽管有这个致命错误?
【问题讨论】:
-
首先使用
require_once修复所有问题,根据访问的页面,可能存在页面包含特定文件一次或多次的情况。 -
如帖子中所说,我已经在使用require_once了。
-
PHP 不允许多次声明函数(具有相同的范围)。有些访问者可能会有不同的想法,不会大喊大叫。
-
可能值得研究一下这些用户的不同之处。它只发生在这些人身上是有原因的。例如,他们可能是管理员,并且仅在此人具有相关访问权限时才包含脚本等。
-
我自己测试过,开发者。使用我自己的帐户,它工作正常。使用测试帐户时,它会显示一个空白页面。
标签: php compiler-errors redeclare redeclaration