华子目录
文件包含
- 文件包含:在一个PHP脚本中,去将另外一个文件(PHP脚本)包含进来,去合作完成一件事情。
文件包含的作用
文件包含的意义:
1、 要么使用被包含文件中的内容,实现代码的共享(重用):向上包含(索要)
- 向上包含:在当前脚本要用某个代码之前包含别的文件
2、 要么自己有东西可以给别的文件使用,实现代码的共享(重用):向下包含(给予)
- 向下包含:在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件)
最大的作用:分工协作,每个脚本做的事情不一样,因此可以使用协作方式,让多个脚本共同完成一件事情。
文件包含四种形式
在PHP中文件的包含有四种形式(两种大形式)
include
包含文件include_once
系统会自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次)require
与include相同require_once
以include_once相同
另一种语法
- 以上方式:是先包含文件,后使用文件中的内容(向上包含)
- 向下包含:先准备内容,然后包含另外的文件,在另外的文件中,使用当前的内容
php代码的执行流程
- 读取代码文件(PHP程序)
- 编译:将PHP代码转换成字节码(生成opcode)
- zendengine来解析opcode,按照字节码去进行逻辑运算
- 转换成对应的HTML代码
文件加载原理
- 在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中
- 加载位置:在哪加载,对应的文件中的代码嵌入的位置就是对应的include位置
- 在PHP中被包含的文件是单独进行编译的
PHP文件在编译的过程中如果出现了语法错误,那么会失败(不会执行);但是如果被包含文件有错误的时候,系统会在执行到包含include这条语句的时候才会报错。
include和require区别
-
include和include_once的区别:
include系统会碰到一次,执行一次;如果对统一个文件进行多次加载,那么系统会执行多次;
-
include_once:系统碰到多次,也只会执行一次。
-
require和include的区别:本质都是包含文件,唯一的区别在于包含不到文件的时候,报错的形式不一样
-
include的错误级别比较轻:不会阻止代码执行
-
require要求较高:如果包含出错代码不再执行(require后面的代码)
文件加载路径
- 文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件。
- 绝对路径
- 相对路径
文件嵌套包含
- 文件嵌套包含:一个文件包含另外一个文件,同时被包含的文件又包含了另外一个文件。