1、错误处理
错误分类
语法错误
不按照php语法规定来写。
运行错误
比如打印了一个没有定义的变量,导入一个不存在php文件
notice:提示,不影响大局,依然可以执行
warning:警告,有风险,一般都要解决这个错误
error:致命错误,程序无法执行
逻辑错误
上面都写对了,但是我输入100,我想要200,你给我2000
错误分级
E_ERROR 1
E_NOTICE 8
E_WARNING 2
0000 0001
0000 0010
0000 1000
错误处理
@:抑制单行错误 只能屏蔽notice和warning
display_errors
是否显示错误信息,在开发阶段我们都需要显示错误信息来方便我们调试代码,但是到发布阶段,所有错误信息都得屏蔽起来,不能让用户看见
1、在php.ini中配置是否显示错误信息 将display_errors修改为Off即可,记得重启服务器
2、通过ini_set函数修改该配置选项
0代表关闭,1代表打开
ini_set('display_errors', 0);
区别:
如果修改的是配置文件,那么所有php程序都不会显示错误
如果你是使用ini_set来修改,这个只针对当前文件生效
ini_set优先级更高
ini_set:在程序中设置php的一些配置信息,
ini_get: 读取php的一些配置信息
error_reporting:错误报告显示哪些
通过这个函数设置
//error_reporting(E_ALL & ~E_NOTICE);
//error_reporting(E_NOTICE | E_ERROR);
或者通过ini_set设置
ini_set('error_reporting', E_NOTICE);
错误日志
log_errors
在php.ini中设置该选项为On
error_log
设置错误信息要保存的位置,将文件保存在当前目录,名字叫做my_error.txt,文件名自己随便起
ini_set('error_log', 'my_error.txt');
自定义错误处理函数
只能替换notice和warning,不能替换error信息
set_error_handler
function my_error_handle($error_code, $error_msg, $error_file, $error_line)
{
$str = '<br />错误详情:<br />';
$str .= '错误代号为'.$error_code.'<br />';
$str .= '错误信息为'.$error_msg.'<br />';
$str .= '错误文件为'.$error_file.'<br />';
$str .= '错误行数为'.$error_line.'<br />';
echo $str;
}
2、时间函数
用途:
发帖时间
回帖时间
Unix时间戳
这个是指从1970年1月1号0时0分0秒到现在的秒数
date date('Y-m-d H:i:s');
时区设置
默认时区为0时区,在英国格林尼治小镇,简称格林尼治时间,我们处于东8区
1、修改配置文件 date.timezone ="UTC"
2、通过函数修改 date_default_timezone_set('PRC');
mktime
时分秒月日年,返回unix时间戳
echo mktime(11, 16, 30, 9, 8, 2016).'<br />';
checkdate
月日年 返回true或者false
var_dump(checkdate(9, 99, 2016));
getdate
传入unix时间戳,得到时间相关数组,unix时间戳不传递默认代表当前时间戳
var_dump(getdate());
strtotime
传入英文时间字符串,返回unix时间戳
var_dump(strtotime('2016-9-8 11:25:30'));
date_parse
传入英文时间字符串,返回时间相关数组
var_dump(date_parse('2016-9-8 11:25:30'));
microtime
传入true,返回微妙数
$start = microtime(true);