PHP(三)-载入文件和错误处理
目录
自学小笔记
文件加载
基本使用
- 有四个文件加载语句: include, require, include_once, require_once
- 以上四种使用形式完全一样: 比如: include “要加载的文件路径"或 include(“路径”);
- 区别在于加载失败或是否重复加载这种情况,有所不同。
文件加载
举例说明 以include
为例其他三种也适用。
- 相对路径: 相对于当前网页文件所在的位置为起点。主要适用符号
./
当前路径,../
上一级路径。 - 绝对路径: 本地路径或者网络绝对路径。
- 无路径 不推荐适用。只给出文件名没有路径。
文件载入和执行过程详解
- 第一步: 从
include
语句处退出php
脚本模式(进入html代码模式) - 第二步: 载入
include
语句所设定的文件中的代码,并执行之(如同在当前文件中一样) - 第三步: 退出html模式重新进入
php
脚本模式,继续执行之后的代码。
4个载入语句的区别
include
和require
的区别:
include
载入文件失败时(既没有找到该文件),报一个提示错误,然后继续执行后续代码。require
载入失败时,报错并立即终止执行- 所以通常
require
用于在程序中,后续代码依赖于载入的文件的时候。
include
和include_once
的区别:
include
载入的文件不判断是否重复,只要有include
语句,就会载入一次。(可能会重复载入)include_once
载入的文件会有内部判断机制是否"前面代码"已经再如果,如果再如果,就不能在载入。
在被载入文件中return语句的作用
一个载入语句,如果载入成功,会返回int 1
,如果载入失败那么返回false
。
return
语句作用是终止被载入过程–就是return
之后的代码不再被执行。return
也可以作为被载入文件载入时返回的一个数据。
错误处理
错误的分类,通常有三种
- 语法错误: 程序运行之前,都要先检查语法。如果语法有错误,会立即报错,并且不会去执行程序。
- 运行时报错: 程序
syntax
检测通过。开始运行程序并在此过程中遇到错误。常见有三种:提示性错误,警告性错误,致命错误。 - 逻辑错误: 程序本身可以正常执行,但没有报错–但计算结果却不对。
错误的分级
php语言中,将各种错误进行了不同级别的分类归纳,并形成大约10几个级别的错误,这就是技术层面的错误分级。
系统常见错误:
E_ERROR
: 致命错误 例如调用不存在的函数们无法执行之后代码。E_ERANING
: 警告性错误 例如引入文件无效,视情况而定代码是否执行E_NOTICE
: 提示性错误 例如调用未定义变量,常量 会提示错误并继续执行代码。
用户可自定义的错误:
E_USER_ERROR
: 自定义致命错误E_USER_WRANING
: 自定义警告性错误E_USER_NOTICE
: 自定义提示性错误
其他:
E_STRICT
: 严谨性语法检查错误E_ALL
: 代表所有错误
介绍个函数可以填充到想要的位数
str_pad($str1,长度n,$str2,位置w);
//将字符串$str1,用字符串$str2填充到指定的长度n,并且可以指定填充的位置,左填充、右填充。
$result = str_pad($s,16,"0",STR_PAD_LEFT);
自定义触发
语法格式: trigger_error("错误提示内容",E_USER_ERROR);
//E_USER_ERROR可以使三种用户代码其中的任意一个。
显示错误报告
- 设置
php.ini
文件中的display_errors: on/off
全局 - 代码中调用
ini_set("display_errors",0);
//0为关,1为开
显示哪些级别的错误报告(error_reporting)
php.ini
文件中error_repoting
- 代码中调用
ini_set("error",E_NOTICE|E_WARNING|E_ERROR);
自定义所务处理器
什么叫错误处理器:就是一旦发生错误,用来处理该错误的一种机器–就是一个函数。
自定义错误处理,就是让系统不要去处理错误,而完全由我们队错误进行处理:显示和记录。
- 第一步设定要处理错误的函数名
set_error_handler("f1");
- 第二步 定义函数
function f1(){...}