即在php脚本中引入其他脚本或文件
作用:更好的组织程序和页面,而且可以利用他们查到代码的一些冗余
关于目录:
-
./ 表示当前脚本所在目录
-
../ 表示当前脚本上一级子目录
-
../../ 表示当前脚本上一级父目录,即上一级子目录的子目录,依此类推
1、文件加载原理
-
在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中
-
加载位置:在哪加载,对应的文件中的代码嵌入的位置就是对应的include位置。
-
在php中被包含的文件是单独进行编译的
-
php文件在编译的过程中如果出现了语法错误,那么会失败(不会执行),但是如果被包含文件有错误的时候,系统会在执行到包含include这条语句的时候才会报错
2、php代码的执行流程
-
读取代码文件(php程序)
-
编译:将php代码转换成字节码(生成opcode)
-
zendengine来解析opcode,按照字节码进行逻辑运算
-
转换成对应的html代码
3、include和require
-
include和include_once:
-
include:系统碰到一次就会执行一次,如果对同一个文件进行多次加载,那么系统会执行多次
-
include_once:系统只执行一次
-
-
require和include:
-
报错的形式不一样
-
include:错误级别较轻,不影响其他代码的执行
-
require:错误级别较高,这后面的代码将不会执行
-
4、文件加载路径
文件在加载的时候需要指定文件路径才能保证PHР正确的找到对应的文件。· 文件的加载路径包含两大类:
-
1、绝对路径。
从磁盘的根目录开始(本地绝对路径)
-
Windows:盘符C:/路径/PHP文件
-
Linux:/路径/PHP文件
从网站根目录开始(网络绝对路径)
-
/:相对于网站主机名字对应的路径。
-
Localhost/index.php->E:/server/apache/htdocs/index.php
-
-
2、相对路径:从当前文件所在目录开始的路径
-
.|./:表示当前文件夹
-
../:上级目录〔当前文件夹的上一层文件夹)
-
-
3、区别
-
绝对路径相对效率偏低,但是相对安全(路径不会出错)
-
相对路径相对效率偏高,但是容易出错(相对路径会发生改变)
-
include_once 'in.php' //默认当前目录
include_once './in.php' //指定当前目录
include_once '../htdocs/in.php' //在上一级目录下的htdocs里面的in.php
include_once 'D:Program Files (x86)phpin.php' //绝对路径
-
5、文件嵌套包含
一个文件包含另一个文件,同时被包含的文件里面又包含里其他文件
-
嵌套包含的时候容易出现相对路径出错的问题:相对路径会因为文件的包含而改变(./和../)win下面,每一个文件夹下面都有.和..的文件夹