1.文件加载原理
PHP代码执行流程
- 读取代码文件(PHP程序);
- 编译:将PHP代码转换成字节码(生成npcode);
- zendengine来解析npcode,按照字节码去进行逻辑运算;
- 转化成对应的html代码;
文件加载原理
- 在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中;
- 加载位置:在哪儿加载,对应的文件中的代码嵌入的位置就是对应的include位置;
- 在PHP中被包含的文件是单独进行编译的;
注:PHP文件在编译的过程中如果出现语法错误,那么会失败(不会执行),但是在被包含文件有错误时,系统会执行到包含include这条语句的时候才会报错;
2.include和require的区别
1. include和include_once的区别:
- include:系统会碰到一次执行一次,如果对同一个文件进行多次加载,系统会执行多次;
- include_once :系统碰到多次,也只会执行一次;
2.include和require的区别:
- 本质都是包含文件,唯一的区别在于包含不到文件的时候报错的形式不一样;
include报错之后不会影响后面代码的执行,而require要求较高,如果代码出错则后面代码不再执行;
2.文件加载路径:文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件
文件的加载路径包含两大类:
1. 绝对路径:
- 从磁盘的根目录开始(本地绝对路径)
如:windows:对应的盘符:\路径/PHP文件
Linux:/路径/PHP文件; - 从网站的根目录开始(网络绝对路径)
/:相对于网站主机名字对应的路径
如:localhost/index.php;
2.相对路径:从当前文件开始的路径
.或者./:表示当前文件夹;
…/:上级目录(当前文件夹的上一级文件夹)
3.绝对路径和相对路径的加载区别:
- 绝对路径相对效率偏低,但是相对安全(路径不会出问题);
- 相对路径相对效率偏高,但是容易出错(因为相对路径会发生改变);