PHP错误处理函数
来源:互联网 发布:道道通修改端口 编辑:程序博客网 时间:2024/05/17 07:38
debug_backtrace() -- 追踪当前代码被调用的源头
PHP debug_backtrace() 函数生成一个 backtrace。
该函数返回一个关联数组。下面是可能返回的元素:
- 返回: "->" - 方法调用
- 返回: "::" - 静态方法调用
- 返回 nothing - 函数调用
function one($str1, $str2) {two("Glenn", "Quagmire");//父父级调用处}function two($str1, $str2) {three("Cleveland", "Brown");//父级调用处}function three($str1, $str2) {print_r(debug_backtrace());//被调用处}one("Peter", "Griffin");
输出结果
Array(
//被调用处
0] => Array(
[file] => E:\wamp\www\a.php
[line] => 8
[function] => three
[args] => Array(
[0] => Cleveland
[1] => Brown
)
)
//父级调用处
[1] => Array(
[file] => E:\wamp\www\a.php
[line] => 4
[function] => two
[args] => Array(
[0] => Glenn
[1] => Quagmire
)
)
//父父级调用处
[2] => Array(
[file] => E:\wamp\www\a.php
[line] => 15
[function] => one
[args] => Array(
[0] => Peter
[1] => Griffin
)
)
)
如果我们想知道某个方法被谁调用了? debug_print_backtrace可以解决
debug_print_backtrace()
可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然.
不过这是一个PHP5的专有函数,好在pear中已经有了实现,
class a {function say($msg) {echo "msg:".$msg;echo "<pre>";debug_print_backtrace();}}class b {function say($msg) {$a = new a();$a->say($msg);}}class c {function __construct($msg) {$b = new b();$b->say($msg);}}$c = new c("test");
结果:
msg:test
#0 a->say(test) called at [E:\wamp\www\a.php:13]#1 b->say(test) called at [E:\wamp\www\a.php:20]#2 c->__construct(test) called at [E:\wamp\www\a.php:24]
error_get_last()获取最后一个报错信息
echo $abc;print_r(error_get_last());
结果:
Array ( [type] => 8 [message] => Undefined variable: abc [file] => E:\wamp\www\a.php [line] => 2 )
error_log()
定义和用法
error_log() 函数向服务器错误记录、文件或远程目标发送一个错误。
若成功,返回 true,否则返回 false。
语法
error_log(error,type,destination,headers)
可选。规定错误记录的类型。
可能的记录类型:
- 0 - 默认。根据在 php.ini 文件中的 error_log 配置,错误被发送到服务器日志系统或文件。
- 1 - 错误被发送到 destination 参数中的地址。只有该类型使用 headers 参数。
- 2 - 通过 PHP debugging 连接来发送错误。该选项只在 PHP 3 中可用。
- 3 - 错误发送到文件目标字符串。
可选。只在 "type" 为 1 时使用。
规定附加的头部,比如 From, Cc 以及 Bcc。由 CRLF (\r\n) 分隔。
注释:在发送电子邮件时,必须包含 From 头部。可以在 php.ini 文件中或者通过此参数设置。
例子
本例发送一封带有自定义错误的电子邮件:
<?php$test=2;if ($test>1){error_log("A custom error has been triggered",1,"someone@example.com","From: webmaster@example.com");}?>
输出:
A custom error has been triggered
error_reporting()
定义和用法
error_reporting() 设置 PHP 的报错级别并返回当前级别。
语法
error_reporting(report_level)
如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:
例子
任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:
<?php//禁用错误报告error_reporting(0);//报告运行时错误error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告所有错误error_reporting(E_ALL);?>
trigger_error()/user_error()
定义和用法
trigger_error() 函数创建用户定义的错误消息。
trigger_error() 用于在用户指定的条件下触发一个错误消息。它与内建的错误处理器一同使用,也可以与由 set_error_handler() 函数创建的用户自定义函数使用。
如果指定了一个不合法的错误类型,该函数返回 false,否则返回 true。
语法
trigger_error(error_message,error_types)
- E_USER_ERROR
- E_USER_WARNING
- E_USER_NOTICE
例子
<?php$test=2;if ($test>1){trigger_error("A custom error has been triggered");
}?>
输出:
Notice: A custom error has been triggeredin C:\webfolder\test.php on line 6
- PHP错误处理函数
- PHP错误处理函数
- php错误处理函数总结
- php错误异常处理函数
- PHP error_log()函数处理错误日志
- PHP中的错误处理和日志函数
- php 错误处理函数 die() exit()
- PHP内置的两个错误处理函数
- PHP中的错误处理和日志函数
- PHP错误处理和日志函数 及函数名
- php设定错误和异常处理可使用的函数
- PHP 错误处理
- PHP 错误处理
- PHP 业务错误处理
- PHP 简单错误处理
- PHP 错误处理
- php 屏蔽错误处理
- php错误处理相关
- C实现 离散余弦转换DCT 源代码
- ORA-12154
- Linux面试题大全(带答案)
- php对像转数组
- 阿基米德杠杆理论与体育精神
- PHP错误处理函数
- Java语言实现数字连连看源码
- linux下搭建SVN服务器完全手册--很强大!!!!!
- ipad弹出中间设置界面
- seo之域名能影响整个站的质量
- How to programmatically remove/hide the system bar in Honeycomb (requires root)
- Visual Studio各种版本之间的转换工具
- myeclipse中FatJar的安装与使用(需要同时导出第三方jar包的请看)
- 兼容IE的javascript跳转(可传递referer)