PHP程序如何debug?
1、检查是否有语法错误php -l test.php
2、基本调试
基本调试API:var_dump($var);print_r($var);echo $var;
基本配置:display_errors、log_errors、error_reporting、error_log
备注:有时候,会关闭报错,需要手动开启。
常用代码:ini_set("display_errors","On");
error_reporting(E_ALL);
3、利用错误搜集函数
debug_backtrace— 产生一条回溯跟踪(backtrace)
debug_print_backtrace — 打印一条回溯。
error_clear_last — 清除最近一次错误
error_get_last— 获取最后发生的错误
error_log — 发送错误信息到某个地方
error_reporting — 设置应该报告何种 PHP 错误
restore_error_handler— 还原之前的错误处理函数
restore_exception_handler — 恢复之前定义过的异常处理函数。
set_error_handler — 设置用户自定义的错误处理函数
set_exception_handler — 设置用户自定义的异常处理函数
trigger_error — 产生一个用户级别的 error/warning/notice 信息
user_error — trigger_error的别名register_shutdown_function('my_shutdown_handler');
function my_shutdown_handler()
{
$error = error_get_last();
if ($error) {
try{
//发送邮件
} catch(Exception $e) {
}
}
return false;
}
4、记logfile_put_contents('log.text', var_export($var, 1), FILE_APPEND);
另外也需要配置error_log
一般是查看apache的错误日志。命令行执行的错误,并不能收集。
5、使用xdebug工具xdebug_start_trace();
/* 业务代码 */
xdebug_stop_trace();