我正在一个有几个朋友的网站上工作,最近,用户抱怨一个相当重要的功能,除了返回空白页面之外什么都不做。这只适用于某些用户,而其他用户则可以完美地使用它。
我咨询了调试输出,事实证明函数被声明了两次。进入功能主页(foo.php
)后,进入require_once
编辑的文件中。显然我现在正在修正它,但令我困惑的是,许多人在访问页面时不会遇到此问题。两个函数声明都是相同的;这些实体似乎已经从一个文件复制+粘贴到另一个文件中。这些函数声明都不是有条件的;他们应该总是发生。
有没有人知道PHP能够处理我的错误并使页面工作的情况,尽管有这个致命的错误?
答案 0 :(得分:1)
它可能是你的函数声明的类型是公共的,私有的或受保护的,所以你可能没有因运气而致命的错误,因为据我所知,php不允许以任何方式重新声明函数。
答案 1 :(得分:0)
抱歉,PHP永远不会忽略致命错误或函数重新声明,因为在这种情况下,PHP会混淆要考虑的函数声明,是使用旧声明还是新声明。
致命错误意味着,有些事情是如此错误,以至于PHP对于下一步该做什么感到困惑,因此你的工作是正确的。
抱歉PHP不会试图弄清楚两个或多个声明是否相同然后忽略其中一个。如果必须这样做,已经很慢的PHP将变得更慢。因此,为了社区的利益,您应该考虑编写正确的代码,而不是让PHP解释器为您纠正这一点。