您的位置 首页 php

尚学堂百战程序员:PHP的错误机制

在日常的项目开发过程中,总是会出现一些我们意想不到的异常错误,如果我们对此没有进行相对完善的处理,那么程序看上去也很不专业,也很可能就会成为别人攻击系统的有效信息;有些错误异常会终止脚本执行,这个时候如果没有一些错误提示信息的话,那么我们只能从头开始看代码了,要知道项目中成百上千行的代码对我们来说是件多么恐怖的事情啊,那么我们如何在项目开发的过程中快速准确地定位到异常、错误呢,并进行相应的处理。

PHP错误:是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查,甚至无法运行的情况。平时遇到的warming、notice都是错误,只是级别不同而已。

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

。PHP提供了set_error_handler()函数进行错误处理。当错误发生时,set_error_handler会统一处理错误。

如下所示

<?php

$a = 0;

function handle($ errno ,$errstr,$errfile,$errline){

echo $errfile;

}

set_error_handler(‘handle’);

echo 4/$a;

echo PHP_EOL;

echo ‘hehe’;

?>

上面的

1

echo 4/$a;发生了错误,此时进入了错误处理函数handle中,进行错误处理,一般我们在handle中加入die,终止执行。

E_DEPRECATED

这个错误表示你用了一个旧版本的函数,而这个函数后期版本可能被禁用或者不维护了。

比如curl的CURLOPT_POSTFIELDS使用\@FILENAME来上传文件的方法

// Deprecated: curl_setopt(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead in /tmp/php/index.php on line 42

$ ch = curl_init(“”);

curl_setopt($ch, CURLOPT_POSTFIELDS, array(‘fileupload’ => ‘@’. “test”));

“我们相信人人都可以成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。”

文章来源:智云一二三科技

文章标题:尚学堂百战程序员:PHP的错误机制

文章地址:https://www.zhihuclub.com/79947.shtml

关于作者: 智云科技

热门文章

网站地图