//自定义错误函数
function my_error3($errno,$errmes){
echo "错误号是:".$errno;
}function my_error4($errno,$errmes){
echo "出大事了".$errno;
exit();
}
//指定E_USER_WARNING错误级别的函数
set_error_handler("my_error3",E_USER_WARNING);
$age=700;
if($age>120){
//调用触发器的时候,同时指定错误级别
trigger_error("输入年龄过大",E_USER_WARNING);
//exit();
}
echo "ok";这样的结果是: 错误号是:512ok//自定义错误函数
function my_error3($errno,$errmes){
echo "错误号是:".$errno;
}function my_error4($errno,$errmes){
echo "出大事了".$errno;
exit();
}
//指定E_USER_WARNING错误级别的函数
set_error_handler("my_error3",E_USER_WARNING);
set_error_handler("my_error4",E_USER_ERROR);$age=700;
if($age>120){
//调用触发器的时候,同时指定错误级别
trigger_error("输入年龄过大",E_USER_WARNING);
//exit();
}
echo "ok";
这个就是在set_error_handler("my_error3",E_USER_WARNING);下面加了一个函数
set_error_handler("my_error4",E_USER_ERROR);
于是结果就变成了:
Warning: 输入年龄过大 in D:\WWW\error\error4.php on line 18ok
我想问的是: 我加了那段函数对我的触发器trigger_error("输入年龄过大",E_USER_WARNING);这段函数毫无影响啊应该,我触发器设置的级别是E_USER_WARNING,就应该是继续调用my_error3这个函数啊,答案应该依旧是 错误号是:512ok 啊
不懂哦,大神帮帮忙!谢谢啦~~~~
function my_error3($errno,$errmes){
echo "错误号是:".$errno;
}function my_error4($errno,$errmes){
echo "出大事了".$errno;
exit();
}
//指定E_USER_WARNING错误级别的函数
set_error_handler("my_error3",E_USER_WARNING);
$age=700;
if($age>120){
//调用触发器的时候,同时指定错误级别
trigger_error("输入年龄过大",E_USER_WARNING);
//exit();
}
echo "ok";这样的结果是: 错误号是:512ok//自定义错误函数
function my_error3($errno,$errmes){
echo "错误号是:".$errno;
}function my_error4($errno,$errmes){
echo "出大事了".$errno;
exit();
}
//指定E_USER_WARNING错误级别的函数
set_error_handler("my_error3",E_USER_WARNING);
set_error_handler("my_error4",E_USER_ERROR);$age=700;
if($age>120){
//调用触发器的时候,同时指定错误级别
trigger_error("输入年龄过大",E_USER_WARNING);
//exit();
}
echo "ok";
这个就是在set_error_handler("my_error3",E_USER_WARNING);下面加了一个函数
set_error_handler("my_error4",E_USER_ERROR);
于是结果就变成了:
Warning: 输入年龄过大 in D:\WWW\error\error4.php on line 18ok
我想问的是: 我加了那段函数对我的触发器trigger_error("输入年龄过大",E_USER_WARNING);这段函数毫无影响啊应该,我触发器设置的级别是E_USER_WARNING,就应该是继续调用my_error3这个函数啊,答案应该依旧是 错误号是:512ok 啊
不懂哦,大神帮帮忙!谢谢啦~~~~
解决方案 »
- 问一个关于table的问题,大家帮忙啊
- 请教关于网页收藏功能的问题
- 文本框空格问题
- linux 下crontab 不执行
- apache+php+mysql建站遇到的问题
- eclipse现在和Zend Studio8是什么关系啊?
- 这个php签到源码,我如果想把两个帐号固定内置在代码里,要怎么写呢? @sibang大侠 谢谢!
- 用在线播放器做在线播放,如何才能做到地址的隐藏??
- 怎样处理文本框(textarea)内提交的数据,现在不能实现与输入的换行一致。分数巨高,难度巨小,广交天下PHP兄弟(当然不回答问题一样没
- 请教内存共享的问题!!!
- 在360元素审查里面,发现加载了一段js,可是源文件里面没有
- FLEX4+php+AMFPHP1.9问题,求大神帮忙
多次 set_error_handler,只有最后一次的有效
你的教程都把他称作触发器了,难道都不强调这一点?
$err_info="错误信息是:".$errno.$errmes;
echo $err_info;
}function my_error3($errno,$errmes){
echo "大事不好了";
exit();
}set_error_handler("my_error3",E_ERROR);
set_error_handler("my_error",E_WARNING);$age=700;
if($age>120){
trigger_error("输入年龄过大",E_ERROR);
}按您的意思我这段函数只有set_error_handler("my_error",E_WARNING);这段是有效的,那我下面定义触发器错误级别是E_ERROR,那就不会去调用SET_ERROR_HANDLER函数了,就会去调用系统内定的错误处理函数了,那为什么结果是:
错误信息是:2Invalid error type specified 。。
这断函数呢!
做一个测试(去掉花里胡哨的东西,只观察函数调用情况)function my_error() {
echo __FUNCTION__;
}
function my_error4() {
echo __FUNCTION__;
}
set_error_handler("my_error", E_USER_WARNING);
//set_error_handler("my_error4",E_USER_ERROR);trigger_error("输入年龄过大", E_USER_WARNING);
trigger_error("输入年龄过大", E_USER_ERROR);my_error
Fatal error: 输入年龄过大 in D:\AMP\web\ide_tmp.php on line 12
去掉第 8 行的注释,得Warning: 输入年龄过大 in D:\AMP\web\ide_tmp.php on line 11
my_error4
由此可知,set_error_handler 只能设置一个回调函数
回调函数只处理 error_types 指定的错误级别(默认是 E_ALL )