有时,在运行PHP网站时,我会收到以下错误:
“Fatal error: Cannot redeclare class ExampleClass in
C:\website\ExampleClass.php on line 5”
然而文件中的第5行是:
require_once C:\website\ExampleClass.php
现在有趣的是,这个错误只发生在一次又一次,并且重新启动Web服务器摆脱它,所以我更倾向于认为它是Web服务器配置的问题,而不是代码
在iis中是否存在防止因任何原因执行脚本的安全设置(错误/执行尝试次数过多?)
谢谢,
*编辑*
今天又发生了这种情况,当它发生时,似乎会影响网站中的所有页面,并且所有页面都会生成相同的错误。 (不能在第5行重新定义类)。第5行是在单独的文件中定义类的行,但似乎只能使用_once调用来访问它。
在我清除IIS 5中的应用程序池后,错误消失了。任何关于为什么清除应用程序池会影响任何事情的想法,或者为什么会以随机间隔发生此错误?
答案 0 :(得分:2)
IIS无法让PHP忘记它已经包含了一个文件。这包括“内存”是按脚本执行的,并且不会在脚本结束后继续存在。您很可能使用常规require
指令在其他地方再次包含该文件。