PHP基础知识之include和require的区别以及错误等级

载入语句的区别

  • include和require的区别

    include 载入失败时(没有找到该文件),报一个“提示错误”,然后继续执行后续代码;
    require载入文件失败是,报错并立即终止执行
    通常,require用于在程序中,后续的代码依赖于载入的文件的时候

  • include_once和include_once的区别

    include_once 载入失败时(没有找到该文件),报一个“提示错误”,然后继续执行后续代码;
    require_once载入文件失败是,报错并立即终止执行

  • include和include_once的区别

    include载入的文件不判断是否重复,只要有include语句,就会载入一次(会造成重复导入)
    include_once载入的文件会有内部判断机制是否“前面代码”已经载入过,如果载入,就不再载入

  • require和require_once的区别

    同include和include_once的区别

错误处理

错误的分类

  • 语法错误

    程序运行之前,,都要先检查语法。如果有错误,就会立即报错,并且不会去执行程序。

  • 运行时错误

    就在程序语法检查通过后,开始运行程序并在此过程中遇到的错误。常见的有3种:
    1、提示性错误
    2、警告性错误
    3、致命性错误

  • 逻辑错误

    程序本身可以正常执行,没有报错--但“计算结果”却报错了。

错误等级

  • PHP中系统常见错误

    E_ERROR:致命性错误
    E_WARNING:警告性错误
    E_NOTICE:提示性错误
    用户可以自定义的错误:
    E_USER_ERROR:自定义致命错误
    E_USER_WARNING:自定义警告性错误
    E_USER_NOTICE:自定义提示性错误
    其他:
    E_STRICT:严谨性语法检查错误
    E_ALL:所有错误
    PHP手册参考
    错误等级参考

错误的触发

  • 系统触发

    程序运行到某行代码,确实出现了某种错误,此时系统就会报错——这就是触发了系统错误。

    系统触发的典型错误有3种:
    1、E_NOTICE:提示性错误,会输出错误提示,并继续执行后续代码;
    2、E_WARNING:警告性错误,会输出错误提示,并继续执行后续代码(也可能看具体情况,比如require)
    比如include载入一个不存在的文件。

    3、E_ERROR:致命错误:导致程序无法执行后续语句:比如调用一个不存在的函数

  • 自定义触发

    当我们处理某些数据的时候,本来数据本身是没有错误的,但根据具体应用(业务)的需要,会要求数据满足某种条件,而该数据并不满足的时候,我们就可以在程序中“主动”去触发(创建)一个错误,以表明该数据的“非法性”。

    语法形式:

    trigger_error("错误提示信息内容",3种用户错误代号之一);

    其中触发了用户的致命错误(E_USER_ERROR),也会终止程序的后续执行。

是否显示错误报告(display_errors):

总共有两种做法:

1、在php.ini文件中,设定display_errors的值,on(显示)、off(不显示)。

注:作为开发阶段,我们都应该显示错误信息

2、在php的脚本文件中设置使用函数ini_set()来对其进行设置:

ini_set('display_errors',0);//不显示错误报告,1为显示

显示哪些级别的错误报告(error_reporting):

1、在php.ini文件中,设置error_reporting=E_ALL | E_STRICT (表示目前代表“所有错误”都显示)

2、在当前的脚本代码中:

ini_set(“error_reporting”, E_NOTICE); //就显示该一个级别的错误
ini_set(“error_reporting”, E_NOTICE | E_WARNING), //显示2个级别
ini_set(“error_reporting”, E_NOTICE | E_WARNING | E_ERROR), //显示3个级别
ini_set(“error_reporting”, E_ALL | E_STRICT), //这才代表显示所有错误!

错误日志的记录

错误日志其实就是错误报告,只是它会“写入文件中”,此时就成为错误日志!

  • 是否记录log_errors:

    两种实现方式
    1、php.ini中:
    log_errors=On 或者Off
    2、脚本中:
    ini_set("log_errors",1);//0:不显示,1:显示

    注:
    ini_set("php设置项",值);//用于脚本中设置php.ini中某项的值
    ini_get("php设置项");//用于获取php.ini中的某项的值

  • 设置error_log的路径

    两种实现方式:
    1、ini_set("error_log","error.txt");//记录到该文件
    2、使用一个特殊的名字“syslog”,则此时所有错误信息都会记录到系统的“日志文件”中。ini_set("error_log","syslog");//记录到系统日中

自定义错误处理器

自定义错误处理,就是指:让系统不要处理错误了,而是完全由开发者来对错误进行处理:显示和记录。

具体实现:
1、设定要处理错误的函数名
set_error_handler("error_handler");
2、定义函数
function error_handler(){
//具体实现
}

自定义错误处理

posted @ 2016-08-21 01:26  onefiter  阅读(1451)  评论(0)    收藏  举报