我使用的都是php __autoload状态自动加载类的,今天好好的程序不知道怎么在运行时提示Fatal error: Cannot redeclare class 了,看是重复定义了类,下面我来分析一下解决办法。
错误提示
Fatal error: Cannot redeclare class ….
从字面来看也很好理解,说明是重复定义了类,找了一下自己的代码,是因为存在同名的类导致的,修改了类名就好了。
原因分析
1.在同一个文件中重复声明了两次同名的类:
例如:
代码如下 | 复制代码 | ||||||||||||||||||||
<?php class Foo {} // some code here class Foo {} ?> 在第二个 Foo 的地方就会报错。 解决:去掉第二个Foo,或者重命名。 为了防止重复定义,可以在定义一个新的类的时候判断一下这个类是否已经存在:
|