Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和iis-无法重新定义类_Php_Iis - Fatal编程技术网

PHP和iis-无法重新定义类

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服务器配置的问题,而不是代码的问

运行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中的应用程序池后,错误消失了。关于为什么清除应用程序池会产生任何影响,或者为什么这个错误会随机发生?

IIS不能让PHP忘记它已经包含了一个文件。这包括“内存”是每个脚本执行的,并且在脚本结束后不会继续存在。很可能您正在使用常规的
require
指令在其他地方再次包含该文件。

我已经查看了源代码,但没有require指令。我只是很难弄清楚为什么这种情况偶尔会发生,而不是每次lad访问页面时都会发生。有一些Include调用,在包含的文件中有一些require_once命令。这会导致问题吗?只要导致此问题的类所在的文件都只加载了*_once()调用,则不会。但如果它位于include()或require()文件中,则会导致此问题。我刚刚在IIS、PHP.6和CakePHP应用程序上遇到了相同的问题。