文件载入
介绍
在实际的开发中,经常会在一个php文件中导入其他的文件,被引入的文件可以是html也可以是php文件
语法
require
require(文件名) require_once(文件名)
示例:
include
include(文件名) include_once(文件名)
在引用文件时,主要有两种使用目的:
当前文件(php)有数据,想要被引用的文件(html)显示
在当前文件(php)想要使用,另一个文件(php)中的功能性代码:
引入路径问题
在实现项目中,对于html文件,我是不允许用户直接请求,而是指向一个php文件,让php文件来引用这个html文件
当一个php文件引入一个html文档时,html文件本身也会引入一些其他的文件,如图片文件,css文件,js文件,这时会发生改变路径的问题。路径要以当前php文件所在的路径问起点
include和require的区别
include在引入文件时,如果被引入的文件不存在则会报错,但程序还会继续向下执行
require在引入文件时,如果被引入的文件不存在,则会上断程序的执行
经验法则:
require 一般用于引入php文件,因为php里面一般书写的是功能性的代码
include一般用于引入html文档
include、require VS include_once 、require_once的区别
include_once require_once每次引入文件时,都会检查所要引入的文件之前有没有被引入过,如果有被引入就不会再引入
include require没有这样的检查流程
__DIR__\__FILE__
__FILE__ 用于获取文件所在的完整文件名
__DIR__ 用于获取文件所在的路径
__FILE__ 和__DIR__并不会被引入后所更改。永远代码__FILE__ 和__DIR__所在文件的文件名和文件夹名
异常处理
错误的分类
1编译错误
在编译的过程中发生的错误就是编译错误,编译错误最容易解决的,很多是由于书写错误
执行错误
在编译通过之后,在执行阶段发生的错误,此种错误一旦发生,会根据错误的等级,来决定是否中断程序的执行
逻辑错误
由于程序的逻辑不严谨,而产生的错误,此种错误是最难排查的,程序可以正常执行,但最终的结果不是我们所期望的
错误代码
在php的错误机制中,每一种错误都使用了一个错误标识,错误标识是常量的形式存在
获取错误代码
系统错误
E_ERROR 致命错误,一旦发生就会中断程序的执行
E_WRRING 警告错误,一旦发生并不会中断程序的执行,
E_NOTICE 提示错误,一旦发生并不会中断程序的执行,
E_PARSE 编译错误,一旦发生就会中断程序的执行
自定义错误
E_USER_ERROR 用户级的致命错误,一旦发生就会中断程序的执行
E_USER_WRRING 用户级的警告错误,一旦发生并不会中断程序的执行,
E_USER_NOTICE 用户级的提示错误,一旦发生并不会中断程序的执行
所有的错误
E_ALL
错误的触发
系统错误的触发
程序员无法干涉系统错误的触发,系统错误有php自己检测并触发的
自定义的错误
trigger_error();
语法:
trigger_error(msg,type);
说明:
msg 错误的描述信息
type 自定义错误的代码(E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE)
提示:
使用错误处理机制的好处是,可以将错误记录起来,默认会被记录到apache的/logs/error.log文件中
错误的控制设置
php错误控制可以在php.ini中进行,我们可以控制错误是否显示,还可以控制显示哪一类的错误
控制是否显示错误
display_errors=on 显示错误
display_errorrs=off 关闭错误的显示
控制显示哪一类错误
error_reporting=
错误的日志文件的设置
我们还可以控制是否记录错误,以及错误日志的记录位置
是否记录记录
log_errors=on 记录错误
log_errors=off 不记录错误
错误记录的位置
如果没有设置error_log默认是记录到apache的错误日志中logerror.log
error_log=syslog 会记录到操作系统的日志中
error_log=文件名 记录到自定义的位置