PHP基础知识之文件加载
控制脚本执行顺序
-
die(字符串)/exit(字符串):
输出该字符串后,立即停止PHP的执行!即后续代码不再执行。
-
sleep($n)
程序停止运行指定的秒数。然后等待过了那个时间后,就继续执行。(单位是秒)
文件加载
四种方式:
include, require, include_once, require_once
使用的时候几乎完全一样,只是在加载失败时或者重复加载时,有所不同。
文件路径
-
分为三种绝对路径、相对路径和“无路径”
1.相对路径:就是相对于当前目录下的路径
2.绝对路径:就是从根目录开始的路径
3.无路径:只是给出文件名(不推荐)
-
四种载入的区别(此处只列举一种,其他大抵相同)
include和include_once的区别: include载入的文件不判断是否重复,只要有include语句,就会载入一次——即此时可能导致重复载入。 include_once载入的文件会有内部判断机制是否“前面代码”已经载入过,如果载入过,就不再载入。
错误处理
错误的分类
通常分为3种:
1.语法错误(运行前检查语法)
2.运行时错误(在语法检查通过后,开始运行程序并在次过程中遇到的错误)
运行时错误也分为3种
1.提示型错误
2.警告性错误
3.致命性错误
3.逻辑错误
程序本身没有错误,确等不到想要的结果
错误的分级
错误的分级都是指技术层面的错误分级,每一个级别的错误,都有一个“代号”(系统内部的常量)
系统常见的错误:
E_ERROR:致命错误
E_WARNING:警告性错误
E_NOTICE: 提示性错误
用户自定义的错误
E_USER_ERROR: 自定义致命错误
E_USER_WARING: 自定义警告性错误
E_USER_NOTICE:自定义提示性错误
其他:
E_STRICT:严谨性语法检查错误
E_ALL:代表“所有错误”
注:错误的等级可以参考手册:函数参考->错误处理->预定义常量
错误的触发
-
系统触发
三种典型方式:
-
E_NOTICE:提示性错误,并继续执行后续代码
-
E_WARNING:警告性错误,继续执行程序
-
E_ERROR:致命性错误,程序不再执行
-
2.自定义触发
语法形式:trigger_error("错误提示信息内容",3种用户错误代号之一);
其中触发了用户的致命性错误(E_USER_ERROR),程序仍会终止运行。
错误报告
错误报告:就是在网页上的错误提示内容!
需要处理的有两个
1.是否显示错误报告(display_errors):
-
在php.ini文件中,设定display_errors的值,为on(显示),或为off(不显示),大概在500多行
-
直接在php的脚本文件中设置使用函数ini_set()来对其进行设置
ini_set("display_errors",0);//不显示错误报告
-
显示哪些级别的错误报告(error_reporting):
两种做法:
1.在php.ini中设置
error_reporting = E_ALL | E_STRICT,此时代表所有错误都显示可以修改为
error_reporting=E_NOTICE此时只显示E_NOTICE级别的错误//显示该3种; error_reporting = E_NOTICE | E_WARING | E_ERROR //显示该2种严重错误 error_reporting = E_ERROR | E_USER_ERROR2.当前脚本代码中:
//就显示该一个级别的错误 ini_set(“error_reporting”, E_NOTICE); //显示2个级别 ini_set(“error_reporting”, E_NOTICE | E_WARNING), //显示3个级别 ini_set(“error_reporting”, E_NOTICE | E_WARNING | E_ERROR), //这才代表显示所有错误! ini_set(“error_reporting”, E_ALL | E_STRICT),
错误日志的记录
-
是否记录 错误日志 为只写的
php.ini中 log_errors = On 或者 Off 当前脚本中: ini_set("log_errors",1)//或者0 -
记录路径 error_log
1.直接使用文件名//会为每个文件夹都创建一个error.txt ini_set("error_log","error.txt");2.使用系统的日志文件
ini_set("error_log","syslog");//记录到系统的日志文件中
自定义错误处理器
错误处理器:就是一旦发生错误,用来处理该错误的一种“机器”---就是一个函数。
自定错误处理,就是让系统不再去处理错误,完全由开发者来对错误进行处理,显示和记录
做法:
第一步:
设定要用于处理错误的函数名!
set_error_handler("my_error_handler");
第二部:
定义该函数
function my_error_handler($errCode, $errMsg, $errFile, $errLine){
//处理相关操作
$str = "";
$str .= "<p><font color='red'>报告大王,发生错误:</font>";
$str .= "<br/>错误代号为:".$errCode;
$str .= "<br/>错误内容为:".$errMsg;
$str .= "<br/>错误文件为:".$errFile;
$str .= "<br/>错误内行号为:".$errLine;
$str .= "<br/>发生时间为:".date("Y-d-m H:i:s");
$str .= "</p>";
echo $str; //输出自定义错误完整的处理结果
}

浙公网安备 33010602011771号