我知道这已在之前得到解答,以及为什么会造成这种情况。不过,就我而言,问题只发生在php 5.3.6上的MacOS Lion(10.7)上。相同的代码库在我的windows 7上运行在php 5.3.8上。致命错误:无法重新声明DbBase类
我已经使用require_once到处都是。代码片段,似乎是导致问题是:
class DbBase
{
...
}
在包含多个文件的文件中。
if (class_exists('DbBase') != true)
{
class DbBase
{
...
}
}
我有这样的场景:
文件DBBase.php:
defines Class DBBase
文件A_DB.php:
require_once("DBBase.php")
但是如果我包里面的类声明错误消失
文件B_DB.php:
require_once("DBBase.php")
文件foo.php:
require_once("A_DB.php")
require_once("B_DB.php)
所以文件DBBase.php并得到包括两次。可以?
任何洞察力是赞赏。
“不能重新声明类”错误不太可能是由此代码引起的,因为它似乎没有声明任何类。我建议发布完整的错误消息和它引用的文件/行。 – StasM
你是对的,我的道歉。有问题的代码确实是一个类定义。但是,除非我将类定义包装在if(class_exists('ClassName')!= true)中,否则错误不会消失。 –