PHP编译原理解析

浏览:2342 发布日期:2014/02/15 分类:前端开发 关键字: php 编译原理
chenglin博客 原文地址:http://www.chenglin.name/php/105.html

转自鸟哥 http://www.laruence.com/2008/06/18/221.html

最近要给Yahoo的同事们做一个关于PHP和Apache处理请求的内部机制的讲座,刚好写了些关于Opcodes的文字,就发上来了,这个文章基于 Sara Golemon大师的《Understanding OPcode》

Opcode是一种PHP脚本编译后的中间语言,就像Java的ByteCode,或者.NET的MSL,举个例子,比如你写下了如下的PHP代码:

<?php
echo "Hello World" ;
$a = 1 + 1 ;
echo $a ;
?>
PHP执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend)

1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)
2.Parsing, 将Tokens转换成简单而有意义的表达式
3.Compilation, 将表达式编译成Opocdes
4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。
题外话:现在有的Cache比如APC,可以使得PHP缓存住Opcodes,这样,每次有请求来临的时候,就不需要重复执行前面3步,从而能大幅的提高PHP的执行速度。

更多详细解析内容请查看 chenglin博客 原文地址:http://www.chenglin.name/php/105.html
最佳答案
评论( 相关
后面还有条评论,点击查看>>