php执行过程

来源:互联网 发布:贵州大数据管理局地址 编辑:程序博客网 时间:2024/05/29 15:58

一直以来都只是用php,而没有过多的关注他是怎么实现的,自从学了java之后,才慢慢关注这些,今天写一些关于php的执行过程。从写的php脚本到最后的返回结果。这中间究竟发生了什么呢??

整个PHP的执行期入手,大致的介绍下各个阶段,词法分析,语法分析,op code等等首先,Zend Engine(ZE),调用词法分析器(Lex生成的,源文件在 Zend/zend_language_sanner.l), 将我们要执行的PHP源文件,去掉空格 ,注释,分割成一个一个的token。然后,ZE会将得到的token forward给语法分析器(yacc生成, 源文件在 Zend/zend_language_parser.y),生成一个一个的op code,opcode一般会以op array的形式存在,它是PHP执行的中间语言。最后,ZE调用zend_executor来执行op array,输出结果

这里写图片描述

zend又是什么呢?

ZE是一个虚拟机,正是由于它的存在,所以才能使得我们写PHP脚本,完全不需要考虑所在的操作系统类型是什么。ZE是一个CISC(复杂指令处理器), 它支持150条指令(具体指令在 Zend/zend_vm_opcodes.h),包括从最简单的ZEND_ECHO(echo)到复杂的 ZEND_INCLUDE_OR_EVAL(include,require),所有我们编写的PHP都会最终被处理为这150条指令(op code)的序列,从而最终被执行。

原文地址

原创粉丝点击