PHP错误机制的总结_第1页
PHP错误机制的总结_第2页
PHP错误机制的总结_第3页
PHP错误机制的总结_第4页
PHP错误机制的总结_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP错误机制的总结PHP 的错误机制也是非常复杂的,也没有仔细总结过,现在就为你补上这一课。下面是由为大家的 PHP错误机制总结,喜欢的可以收藏一下!了解更多详情资讯,请关注 !特别说明:文章的 PHP版本使用PHP 的错误级别首先需要了解php有哪些错误。截至到 php5.5,一共有16个错误级别注意:尝试下面的代码的时候请确保打开 error_log:error_reporting(E_ALL);ini_set('display_errors','On');E_ERROR这种错误是致命错误,会在页面显示 FatalError ,当出现这种错误的时候,程序就无法继续执行下去了错误示例://Fatalerror:Calltoundefinedfunctionhpinfo()in/tmp/php/index.phponline5hpinfo();//E_ERROR注意,如果有未被捕获的异常,也是会触发这个级别的。//Fatalerror:Uncaughtexception'Exception'withmessage'testexception'in/tmp/php/index.php:5Stacktrace:#0{main}thrownin/tmp/php/index.phponline5thrownewException("testexception");E_WARNING这种错误只是警告,不会终止脚本,程序还会继续进行,显示的错误信息是Warning。比如include 一个不存在的文件。//Warning:include(a.php):failedtoopenstream:Nosuchfileordirectoryin/tmp/php/index.phponline7//Warning:include():Failedopening'a.php'forinclusion(include_path='.:/usr/share/pear:/usr/share/php')in/tmp/php/index.phponline7include("a.php");//E_WARNINGE_NOTICE这种错误程度更为轻微一些,提示你这个地方不应该这么写。这个也是运行时错误,这个错误的代码可能在其他地方没有问题, 只是在当前上下文情况下出现了问题。比如$b变量不存在,我们把它赋值给另外一个变量//Notice:Undefinedvariable:bin/tmp/php/index.phponline9$a=$b;//E_NOTICEE_PARSE这个错误是编译时候发生的,在编译期发现语法错误,不能进行语法分析。比如下面的z没有设置为变量。//Parseerror:syntaxerror,unexpected'='in/tmp/php/index.phponline20z=1;//E_PARSEE_STRICT这个错误是PHP5之后引入的,你的代码可以运行,但是不是PHP建议的写法。比如在函数形参传递++符号//StrictStandards:Onlyvariablesshouldbepassedbyreferencein/tmp/php/index.phponline17functionchange(&$var){$var+=10;}$var=1;change(++$var);//E_STRICTE_RECOVERABLE_ERROR这个级别其实是 ERROR级别的,但是它是期望被捕获的,如果没有被错误处理捕获,表现和 E_ERROR是一样的。经常出现在形参定义了类型,但调用的时候传入了错误类型。它的错误提醒也比 E_ERROR的fatalerror 前面多了一个Catachable的字样。//Catchablefatalerror:Argument1passedtotestCall()mustbeaninstanceofA,instanceofBgiven,calledin/tmp/php/index.phponline37anddefinedin/tmp/php/index.phponline33classA{}classB{}functiontestCall(A$a){}$b=newB();testCall($b);E_DEPRECATED这个错误表示你用了一个旧版本的函数,而这个函数后期版本可能被禁用或者不维护了。比如curl 的CURLOPT_POSTFIELDS使用@FILENAME来上传文件的方法//Deprecated:curl_setopt():Theusageofthe@filenameAPIforfileuploadingisdeprecated.PleaseusetheCURLFileclassinsteadin/tmp/php/index.phponline42$ch=curl_init(".remotesite./upload.php");curl_setopt($ch,CURLOPT_POSTFIELDS,array('fileupload'=>'@'."test"));E_CORE_ERROR,E_CORE_WARNING这两个错误是由PHP的引擎产生的,在PHP初始化过程中发生。E_PILE_ERROR,E_PILE_WARNING这两个错误是由 PHP引擎产生的,在编译过程中发生。E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE,E_USER_DEPRECATED,这些错误都是用户制造的,使用 trigger_error ,这里就相当于一个口子给用户触发出各种错误类型。这个是一个很好逃避trycatch 异常的方式。trigger_error("Cannotdividebyzero",E_USER_ERROR);//E_USER_ERROR//E_USER_WARING//E_USER_NOTICE//E_USER_DEPRECATEDE_ALLE_STRICT 出外的所有错误和警告信息。错误控制php 中有很多配置和参数是可以控制错误,以及错误的日志显示的。第一步,我们需要了解的是 php中的有关错误的配置有哪些 ?我们按照php+php-fpm的模型来说,会影响 php错误显示的其实是有两个配置文件,一个是 php本身的配置文件 php.ini ,另外一个是php-fpm的配置文件,php-fpm.conf。php.ini 中的配置error_reporting=E_ALL// 报告错误级别,什么级别的error_log=/tmp/php_errors.log//php 中的错误显示的日志位置display_errors=On// 是否把错误展示在输出上,这个输出可能是页面,也可能是

stdoutdisplay_startup_errors=On//示在页面上,记得上面说

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论