2019独角兽企业重金招聘Python工程师标准>>>

1、错误类型:PHP致命错误

Error type: PHP Fatal error

Fatal error: Cannot redeclare (a) (previously declared in (b)) in (c) on line (d)

2、错误描述:

该错误报告表示你正企图对已经定义过的函数进行再次定义,其中

a----表示重复定义的函数名;

b----第一次定义该函数时的文件名称及行号;

c----第二次定义该函数时的文件名称;

d----第二次定义该函数时的行号。

3、原因及解决方法:

原因:你连续两次使用相同名称来定义一个函数,例如

function myFunction(){}

function myFunction(){}

结果如下

Fatal error:Cannot redeclare myfunction()(previously declared in(path):2)in(path) on line 1

解决:

找到已经声明过的函数,看看是什么需要导致你再次定义了它。如果只是单纯的忘记之前已经定义过,那么将其中一个声明删除掉就是。比如你的脚本文件排列异常混乱,并且你可能使用了大量的include()之类的函数,这将导致你很难从混乱的代码当中理清思路。不过,如果你的PHP版本比较新(PHP 5.3.8+)貌似就可以用命名空间来解决那种的确有重复定义函数必要的情况。

4 PHP严重致命错误处理解决举例说明如下

1)在同一个文件中重复声明了两次同名的类:

例如:

<?php

class Foo {}

// some code here

class Foo {}

?>

在第二个 Foo 的地方就会报错。

解决:去掉第二个Foo,或者重命名。

为了防止重复定义,可以在定义一个新的类的时候判断一下这个类是否已经存在:

if(class_exists('SomeClass') != true)

{

//put class SomeClass here

}

if(class_exists('SomeClass') != true)

{

//put class SomeClass here

}

2)重复包含相同的类文件:

例如:对于某个类文件some_class.php,在a.php中

include "some_class.php";

include "some_class.php";

在b.php中

include "a.php";

include "some_class.php";

include "a.php";

include "some_class.php";

就会报错。

解决:将上述的include全部替换为include_once

3)该类为PHP类库中内置的类。

判断方法:在一个空文件中写入

<?php

class Com

{

}

?>

这时候提示Cannot redeclare class Com,说明这个类就是PHP内置的类。不能使用。

另外,要避免使用太大众化的类名,比如Com,这个类在Linux使用可能是正常的,在Windows环境却无法运行。

再记一个网上找到的解决方法,可能在某些场合有用,先记着

if (!class_exists('pageModule')){

require_once(PATH_site.'fileadmin/scripts/class.page.php');

}

上面的办法不适用于使用了php __autoload类加载的方法 ,但己经可以解决办法问题了,__autoload是自动加载的我们只要把相同类名找出来然后重命名即可。

文章转载自:[169it.com科技资讯]
本文标题:PHP严重致命错误处理:php  Fatal error: Cannot redeclare class or function

转载于:https://my.oschina.net/u/1766067/blog/299250

PHP严重致命错误处理:php Fatal error: Cannot redeclare clas相关推荐

  1. Fatal error: Cannot redeclare 原因与解决方法

    今天在用PHP博客程序Wordpress的时候,结果在"后台 - 外观 -小工具"这里,报错如下: Fatal error: Cannot redeclare hot_commen ...

  2. Fatal error: Cannot redeclare db_connect() 错误

    Fatal error: Cannot redeclare db_connect() (previously declared in D:/wamp/www/flex/new/mysql_inc.ph ...

  3. php fatal error: cannot redeclare,Fatal error: Cannot redeclare 常见问题

    Fatal error: Cannot redeclare 常见问题 fatal error: cannot redeclare这种问题php教程 开发可能会碰到过,原因是很简单的,就是重复调用了相同 ...

  4. 无法启用插件,因为它引起了一个致命错误(fatal error)。

    关于wordpress不能启用某插件引发的错误,php 中 出错,Cannot redeclare wpb_getImageBySize().这个问题也是在我wordpress版本从v4.1生成v4. ...

  5. 问题 | Matlab:Fatal Error on startup(致命错误)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  6. linux常见致命错误(fatal error),解决办法:

    常见错误一:fatal error: zlib.h: No such file or directory 解决办法: sudo apt-get install zlib1g-dev 常见错误二:fat ...

  7. vs与git中间的阻拦--Git failed with a fatal error. error: open(“.vs/GBA/v16/Server/sqlite3/db.lock

    具体错误信息: Git failed with a fatal error. error: open(".vs/GBA/v16/Server/sqlite3/db.lock 因为git上传要 ...

  8. 成功解决Ubuntu下的include/darknet.h:14:14: fatal error: cuda_runtime.h: No such file or directory

    成功解决Ubuntu下的include/darknet.h:14:14: fatal error: cuda_runtime.h: No such file or directory 目录 解决问题 ...

  9. Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

    之前在运行一个文件时,发生了这个问题,排查了一下是wineModel = LassoCV(cv=10).fit(X, Y) 这行代码组成的. Intel MKL FATAL ERROR: Cannot ...

最新文章

  1. 手机通讯录分组名称_基于Aandroid的手机操作系统(7)
  2. Google首席科学家Peyman 《计算成像去噪进展》斯坦福演讲报告,附视频与Slides
  3. 第四节 莎士比亚模板
  4. 【迁移2018-04-12 10:46:11】BeanCopier之MapStruct(一)
  5. OVS DPDK--虚拟设备配置(六)
  6. laravel5.4 关于select下拉框读取数据库数据案例
  7. 【C++ Primer | 08】课后习题答案
  8. Nginx+keepalived 实现高可用,防盗链及动静分离配置详解(值得收藏)
  9. Mac node js环境的安装与测试
  10. Java String子序列
  11. ubuntu 创建容器 并ssh 连接容器
  12. 泛微oa安装mysql,泛微OA系统安装升级重装手册(参考).doc
  13. 十大网站压力测试软件-- WEB压力测试工具介绍
  14. 最强数据库工具——IDEA
  15. CTCS列控系统原理--详细学习笔记
  16. 优酷的kux格式怎么转换成mp4?教你快速转换的方法
  17. 现代信号处理——自适应滤波器(LMS自适应滤波器)
  18. 鸿蒙应用开发 | 时间选择器(TimePicker)的功能和用法
  19. android 获取刘海高度,不同刘海屏幕获取安全高度
  20. input标签用法与功能全面解析

热门文章

  1. cmd运行Java中文乱码,无法加载主类Error: Could not find or load main class
  2. 【二维树状数组】See you~
  3. MXNet学习:试用卷积-训练CIFAR-10数据集
  4. PHP基础封装简单的MysqliHelper类
  5. Galaxy nexus i9250 android 4.2 一键root
  6. 准备把以前在百毒博客写的一些文章搬运过来
  7. Asp.net Mvc Enum 扩展
  8. 使用git 上传自己代码
  9. g(n)= d∣n ∑ f( d n )_专栏F|Cora单词25衣服 (下):衣服也要配饰来搭配
  10. 基类和派生类写在一个文件中_BootISO:从 ISO 文件中创建一个可启动的 USB 设备...