当前位置: 首页 > 后端技术 > PHP

PHP-大家应该知道的PHP底层运行机制和工作原理?

时间:2023-03-29 15:39:07 PHP

1。PHP设计理念及特点多进程模型:由于PHP是多进程模型,不同的请求不会互相干扰,保证了一个请求挂了不会影响整体服务,PHP也很早就支持多线程模型.弱类型语言:变量的类型一开始并不确定,但在运行过程中会确定,可能会发生隐式或显式类型转换。引擎(Zend)+组件(ext)的模式,降低了内部耦合。中间层(sapi)隔离web服务器和PHP。语法简单灵活,没有过多的规范。缺点导致混合风格。二、PHP的四层体系PHP自下而上提供了四层体系:1、Zend引擎Zend整体采用纯C语言实现,是PHP的核心部分。它的主要功能是将PHP代码翻译成可执行的opcode处理并实现相关的处理方法,实现基本的数据结构(如:hashtable)、内存分配机制和管理,并提供相关的API方法供外部调用。2.Extensions围绕Zend引擎,以组件化的方式提供各种基础服务,如常用的PHP内置函数(array()等),以及一系列标准库。同时,你可以自定义你想要的ExtendedApplication的实现3.SapiSapi的全称是ServerApplicationProgrammingInterface,即服务器应用程序编程接口。Sapi通过一系列的钩子函数使PHP能够与外围数据进行交互。这是一个非常优雅和成功的PHP设计。PHP本身与上层应用是解耦隔离的。PHP可以不再考虑如何兼容不同的应用,应用本身可以根据自己的特点实现不同的处理方式。4、上层应用通常编写PHP程序,通过不同的spai方法获取各种应用模式,如何通过webserver实现web应用,在命令行下运行脚本等等。3、SapiSapi通过一些特殊的处理方式,使外部应用程序能够与PHP交换数据。常见的cli、fastcgi等4.PHP执行过程PHP动态语言执行过程:拿到一段代码后,经过词法分析、语法分析等阶段,将源程序翻译成指令(opcodes),然后ZEND虚拟机依次执行这些指令,完成运算。PHP本身是用C实现的,所以最终调用的也是C函数。其实我们可以把PHP看成是用C开发的软件,下图是PHP执行一段代码会经历的四个步骤。四个步骤分别是:1.Scanning(Lexing),将PHP代码转化为语言片段(Tokens)2.Parsing,将Tokens转化为简单有意义的表达式3.Compilation,将表达式编译成Opcodes4.Execution,依次执行Opcodes,一个在一次,从而实现PHP脚本的功能。简单的说,上面四个步骤首先是对php代码进行词法分析,然后得到每一个词,然后在解析阶段,把之前得到的词中无用的词去掉,留下有意义的表达,然后,将上一步中有意义的表达式编译成opcodes,最后依次执行opcodes字段,实现PHP脚本。备注:现在有些缓存比如APC可以让PHP缓存Opcodes,这样每次请求过来,就不用再重复前面3步,可以大大提高PHP的执行速度。参考链接:http://www.laruence.com/2008/...更多精彩内容,欢迎关注我的微信公众号:醉茶