PHP基础知识之文件加载

控制脚本执行顺序

  1. die(字符串)/exit(字符串):

    输出该字符串后,立即停止PHP的执行!即后续代码不再执行。

  2. 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:代表“所有错误”

注:错误的等级可以参考手册:函数参考->错误处理->预定义常量

错误的触发

  1. 系统触发

    三种典型方式:

    1. E_NOTICE:提示性错误,并继续执行后续代码

    2. E_WARNING:警告性错误,继续执行程序

    3. 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);//不显示错误报告
    
  1. 显示哪些级别的错误报告(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_ERROR
    

    2.当前脚本代码中:

     //就显示该一个级别的错误
     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; //输出自定义错误完整的处理结果
}
posted @ 2016-09-06 09:29  onefiter  阅读(168)  评论(0)    收藏  举报