PHP和iis-无法重新定义类
运行PHP网站时,偶尔会出现以下错误:PHP和iis-无法重新定义类,php,iis,Php,Iis,运行PHP网站时,偶尔会出现以下错误: “Fatal error: Cannot redeclare class ExampleClass in C:\website\ExampleClass.php on line 5” 但是,文件中的第5行是: require_once C:\website\ExampleClass.php 现在有趣的是,这个错误只会偶尔发生一次,重新启动web服务器就会消除它,所以我更倾向于认为这是web服务器配置的问题,而不是代码的问
“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中的应用程序池后,错误消失了。关于为什么清除应用程序池会产生任何影响,或者为什么这个错误会随机发生?IIS不能让PHP忘记它已经包含了一个文件。这包括“内存”是每个脚本执行的,并且在脚本结束后不会继续存在。很可能您正在使用常规的
require
指令在其他地方再次包含该文件。我已经查看了源代码,但没有require指令。我只是很难弄清楚为什么这种情况偶尔会发生,而不是每次lad访问页面时都会发生。有一些Include调用,在包含的文件中有一些require_once命令。这会导致问题吗?只要导致此问题的类所在的文件都只加载了*_once()调用,则不会。但如果它位于include()或require()文件中,则会导致此问题。我刚刚在IIS、PHP.6和CakePHP应用程序上遇到了相同的问题。