1

我和几个朋友在一个网站上工作,最近,用户抱怨一个相当重要的功能除了返回一个空白页面什么都不做。这只发生在某些用户身上,而其他用户可以完美地使用它。

我查阅了调试输出,结果发现一个函数被声明了两次。一次在功能的主页 ( foo.php) 中,另一次在获得require_once'ed 的文件中。显然,我现在正走在修复它的正确道路上,但让我感到困惑的是,许多人在访问该页面时并没有遇到这个问题。两个函数声明是相同的;身体似乎已从一个文件复制+粘贴到另一个文件。这些函数声明都不是有条件的;它们都应该总是发生。

有谁知道 PHP 能够处理我的错误并使页面正常工作的情况,尽管有这个致命错误?

4

2 回答 2

1

它可能是您的函数声明的类型是公共的、私有的或受保护的,因此您可能不会幸运地遇到致命错误,因为据我所知,php 不允许以任何方式重新声明函数。

于 2012-04-09T12:44:31.153 回答
0

抱歉,PHP 永远不能忽略致命错误或函数重新声明,因为在这种情况下,PHP 会混淆要考虑哪些函数声明,是使用旧声明还是新声明。

  • 致命错误的意思是,有些地方出了问题,PHP 对下一步该做什么感到困惑,因此您的工作就是把它做好。

  • 抱歉,PHP 不会试图找出两个或多个声明是否相同,然后忽略其中一个。如果必须这样做,已经很慢的 PHP 将变得更慢。因此,为了社区的利益,您应该考虑编写正确的代码,而不是让 PHP 解释器为您更正。

于 2012-04-09T12:39:06.593 回答