php 解析流程
程序员文章站
2024-01-12 20:43:40
...
我们都知道PHP脚本的执行过程,先是由Zend引擎将PHP源码编译为opcode序列,再由Zend VM去解释执行。一般编译的过程都是先进行词法分析、语法分析,然后才是编译。在经过语法分析之后,有一个抽象语法树(AbstractSyntax Tree或者缩写为AST)的概念,他算是语法分析的产出,之后的编译过程是编译器在AST基础上进行的。
但是PHP比较特殊,Zend引擎在语法分析之后直接产出了opcode,没有生成AST。这样做最大的好处是加快了编译过程,坏处则是丧失了一些*性,难以优化以及导致编译程序逻辑复杂。具体PHP官网上有一篇wiki探讨了在PHP的编译过程中引入AST,当然实现起来难度肯定很大。
我们在平时一般不会接触到PHP的编译过程,但是AST却是个有用的东西,我们平时工作中很多工具里面都有AST,比如PHP_CodeSniffer、PHP_Depend、ZendStudio、PDT,需要对源码进行分析的场合,或多或少都需要AST的帮忙。
下面我们看下PHP7和php5编译流程,如图
以上就介绍了php 解析流程,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
上一篇: 象这种需求如何搞二次开发 100分
推荐阅读
-
python 2.7 环境,读取一个 json字符串的文件,并解析(文件解析)
-
php检测函数是否存在函数 function_exists_PHP教程
-
PHP常见漏洞攻击分析,php漏洞攻击
-
分享10段PHP常用代码
-
两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错,_PHP教程
-
Kafka Partition重分配流程简析
-
国家基本医疗保险和工伤保险药品目录 php目录管理函数小结
-
Swoole-1.7.22 版本已发布,修复PHP7相关问题,swoole-1.7.22php7
-
约瑟夫环问题的链表解法和数学解法(PHP)
-
Flutter -------- 解析JSON数据