我收到了这个错误:
Fatal error: Cannot redeclare class Customer
然后我添加了以下代码:
if (!class_exists('Customer')) {
include('include/customer.class.php');
}
为什么我仍然会收到错误?
我有一个文件(file1.php),它声明了Customer()类。
在file1.php中,我对file2.php进行了ajax调用
在file2.php中,我再次声明Customer()类。
在file2.php中,只有1个Customer()类声明。
答案 0 :(得分:5)
检查您的服务器是否像APC一样运行opcode cacher - 这是导致错误的原因。我最近遇到过它。
答案 1 :(得分:1)
显然,由于我发出的事实:
if (!class_exists('Customer')) {
该类不存在,因此类本身以某种方式重复自身。
我在应用程序的许多其他页面中使用此类没有问题。
我简单地删除了整个事情:
if (!class_exists('Customer')) {
include('include/customer.class.php');
}
它在某种程度上起作用,它是预制的!
非常非常奇怪......
嗯,它现在正在工作......我想我会留下它......
答案 2 :(得分:0)
使用include_once()。如果仍然给你一个错误,问题是你在“include / customer.class.php”文件中多次声明该类
答案 3 :(得分:0)
错误可能是由多次定义的类引起的,例如:
class Foo() {}
class Foo() {} // Fatal error
如果您不确定您的课程被包括多少次,您可以做两件事:
include_once()
或require_once()
以确保该文件只需“一次”。每次包含该文件时,请写下您提供的代码:
if (!class_exists('Customer')) {
include('include/customer.class.php');
}
我更喜欢第一个。 你的问题是上面描述的问题。必须有一个多次声明类的地方。没有任何代码很难说清楚。
以下是一些参考资料: