文件包含
文件包含的作用
文件包含的意义:
1、要么使用被包含文件中的内容,实现代码的共享(重用):向上包含(索要)
向上包含:在当前脚本要用某个代码之前包含别的文件
2、要么自己有东西可以给别的文件使用,实现代码的共享(重用):向下包含(给予)
向下包含:在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件)
最大的作用:分工协作,每个脚本做的事情不一样,因此可以使用协作方式,让多个脚本共同完成一件事
文件包含的四种形式
四种形式(两种大形势)
include:包含文件
include_once:系统会自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次)
require:与include相同
require_once:与include_once相同
包含基本语法
include ‘文件名字’;
include(‘文件名字’); //文件名字:路径问题向上包含:是先包含文件,后使用文件中的内容
向下包含:先准备内容,然后包含另外的文件,在另外的文件中,使用当前的内容
文件加载的原理
PHP代码的执行流程
1、读取代码文件(PHP程序)
2、编译:将PHP代码转换成字节码(生成opcode)
3、zendengine来解析opcode,按照字节码去进行逻辑运算
4、转换成对应的HTML代码
1、在文件加载(include和require)的时候,系统会自动的将包含文件中的代码相当于嵌入当前文件中
2、加载位置:在哪加载的,对应的文件中的代码嵌入的位置就是对应的include位置
3、在PHP中被包含的文件是单独进行编译的
PHP文件在编译的过程中如果出现了语法错误,那么会失败(不会执行);但是如果被包含文件有错误的时候,系统会在执行到包含include这句语句的时候才会报错。
include和require区别
include系统会碰到一次,执行一次;如果对同一个文件进行多次加载,那么系统也会执行多次
include_once:系统碰到多次,也只会执行一次
include和require的区别:本质都是包含文件,唯一的区别在于包含不到文件的时候,报错的形式不一样
include的报错级别比较轻:不会阻止代码的执行
require的报错级别比较高:如果包含出错代码不再执行require后面的代码
文件加载路径
文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件。
文件的加载路径包含两大类:
1、绝对路径
从磁盘的根目录开始(本地绝对路径)
Windows:盘符C:/路径/PHP文件
Linux:/路径/PHP文件
从网站根目录开始(网站绝对路径)
/:相对于网站主机名字对应的路径
localhost/index.php ->E:/server/apache/htdocs/index.php
2、相对路径
./:表示当前文件夹
…/:上级目录(当前文件夹的上一层文件夹)
绝对路径和相对路径的加载区别
1、绝对路径相对效率偏低,但是相对安全(路径不会出错)
2、相对路径相对效率较高,但是容易出错(相对路径会出现改变)
文件嵌套包含
嵌套包含的时候就很容易出现相对路径出错的问题:相对路径会因为文件的包含而改变(./和./):windows下面,每一个文件夹下都有.h和…d的文件夹
举个简单的生活栗子:
张三 左边是 李四,李四左边是王五
张三把李四叫到自己的位置:李四和王五之间有两个位置,李四如果还按照左边伸手找王五就找不到。