deprecated 不赞成使用,可能有漏洞可能效率低,以后的版本不支持等
notice 通知级别的错误
warning 警告 这个需要看代码是不是哪里出了问题 以上三个程序仍然继续向下执行
fatal error 致命错误 程序停止执行
parse error 解析错误了 直接挂了 程序停止执行
=================================
E_USER 级别错误,用户自定义错误;好比,我触发trigger_error()一个E_USER_ERROR级别错误,它就相当于php本身的error错误
顺便这里说下,找到php.ini的一个方法,打印出phpinfo();
如图:
程序里写 非php.ini
php5默认级别是E_ALL & ~E_NOTICE 意思是,除了notice级别的错误,都显示。这在开发模式时是有必要的。
error_reporting(0); //不显示错误
error_reporting(-1); // 显示所有错误
显示出来:ini_set('display_errors','On');
<?php function myhandler($errorno, $errorstr){ switch ($errorno) { case E_USER_ERROR: echo $errorno, ': ',$errorstr, '<br/>'; die;// 如果是这个级别则结束掉 break; case E_USER_WARNING: echo $errorno, ': ',$errorstr, '<br/>'; break; default: # code... break; } return true; } set_error_handler('myhandler'); $a = '0'; if (intval($a)<=0){ trigger_error('warning level', E_USER_WARNING); } echo 'go on_1'; echo '<br/>'; $b = 'hi'; if(!is_numeric($b)){ trigger_error('not a number', E_USER_ERROR); } echo 'go on_2'; echo '<br/>';
这里可以看下手册中trigger_error()和set_error_handler()的用法。
trigger_error()触发E_USER系列的错误。
set_error_handler(),可以定义自己的错误。
mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
$error_handler的参数 handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] )
$errorno是错误级别,比如E_USER系列的...