首页 存档 技术 查看内容

PHP 的错误机制总结 PHP的错误级别 错误控制 总结

2018-3-30 13:00 |来自: 互联网 342 0

摘要: 作者:叶剑峰 链接:www.cnblogs.com/yjf512/p/5314345.html PHP 的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课。 特别说明:文章的PHP版本使用5.5.32 PHP的错误级别 首先需要了解ph ...

作者:叶剑峰

链接:www.cnblogs.com/yjf512/p/5314345.html


PHP 的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课。

特别说明:文章的PHP版本使用5.5.32

PHP的错误级别

首先需要了解php有哪些错误。截至到php5.5,一共有16个错误级别

注意:尝试下面的代码的时候请确保打开error_log:

error_reporting(E_ALL);

ini_set('display_errors', 'On');


E_ERROR

这种错误是致命错误,会在页面显示Fatal Error, 当出现这种错误的时候,程序就无法继续执行下去了

错误示例:

// Fatal error: Call to undefined function hpinfo() in /tmp/php/index.php on line 5

hpinfo();//E_ERROR


注意,如果有未被捕获的异常,也是会触发这个级别的。

// Fatal error: Uncaught exception 'Exception' with message 'test exception' in /tmp/php/index.php:5 Stack trace: #0 {main} thrown in /tmp/php/index.php on line 5

throw new Exception("test exception");


E_WARNING

这种错误只是警告,不会终止脚本,程序还会继续进行,显示的错误信息是Warning。比如include一个不存在的文件。

//Warning: include(a.php): failed to open stream: No such file or directory in /tmp/php/index.php on line 7

//Warning: include(): Failed opening 'a.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /tmp/php/index.php on line 7

include("a.php"); //E_WARNING


E_NOTICE

这种错误程度更为轻微一些,提示你这个地方不应该这么写。这个也是运行时错误,这个错误的代码可能在其他地方没有问题,只是在当前上下文情况下出现了问题。

比如$b变量不存在,我们把它赋值给另外一个变量

//Notice: Undefined variable: b in /tmp/php/index.php on line 9

$a = $b; //E_NOTICE


E_PARSE

这个错误是编译时候发生的,在编译期发现语法错误,不能进行语法分析。

比如下面的z没有设置为变量。

// Parse error: syntax error, unexpected '=' in /tmp/php/index.php on line 20

z=1; // E_PARSE


E_STRICT

这个错误是PHP5之后引入的,你的代码可以运行,但是不是PHP建议的写法。

比如在函数形参传递 符号

// Strict Standards: Only variables should be passed by reference in /tmp/php/index.php on line 17

function change (

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部