欢迎来到天天文库
浏览记录
ID:15039517
大小:33.00 KB
页数:11页
时间:2018-08-01
《深入理解php之opcode原理详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、★精品文档★深入理解PHP之OpCode原理详解 本文实例讲述了PHP中OpCode的原理。分享给大家供大家参考,具体如下:OpCode是一种PHP脚本编译后的中间语言,就像Java的ByteCode,或者.NET的MSL。此文主要基于《UnderstandingOPcode》和网络,根据个人的理解和修改,特记录下来:PHP代码:<?php echo“HelloWorld”; $a=1+1; echo$a;?PHP执行这段代码会经过如下4个步骤:1.Scanning(Lexing),将PHP代码
2、转换为语言片段(Tokens)2.Parsing,将Tokens转换成简单而有意义的表达式3.Compilation,将表达式编译成Opocdes4.Execution,顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。注:现在有的Cache比如:APC,可以使得PHP缓存Opcodes2016全新精品资料-全新公文范文-全程指导写作–独家原创11/11★精品文档★,这样,每次有请求来临的时候,就不需要重复执行前面3步,从而能大幅的提高PHP的执行速度。首先,Zend/zend_language_scanner.c会根据Z
3、end/zend_language_scanner.l(Lex文件),来对输入的PHP代码进行词法分析,从而得到一个一个的“词”,PHP4.2+开始提供了一个函数叫token_get_all,这个函数就可以讲一段PHP代码Scanning成Tokens;<?php$tokens=token_get_all(‘<?php echo“HelloWorld”; $a=1+1; echo$a;?’);print_r($tokens);?将会得到如下结果:Array( [0]=Array&n
4、bsp; ( [0]=367 [1]=<?php [2]=2016全新精品资料-全新公文范文-全程指导写作–独家原创11/11★精品文档★1 ) [1]=Array ( [0]=370 [1]= [2]=2 ) [2]=Array&
5、nbsp; ( [0]=316 [1]=echo [2]=2 ) [3]=Array ( [0]=370 [1]= [2]=2 ) [4]=Array ( [0]=2016全新精品资
6、料-全新公文范文-全程指导写作–独家原创11/11★精品文档★315 [1]=“HelloWorld” [2]=2 ) [5]=; [6]=Array ( [0]=370 [1]= [2]=2 ) [7]=Array ( &nb
7、sp;[0]=309 [1]=$a [2]=3 ) [8]=Array ( [0]=370 [1]= [2]=3 2016全新精品资料-全新公文范文-全程指导写作–独家原创11/11★精品文档★) [9]== [10]=Array ( &n
8、bsp; [0]=370 [1]= [2]=3 ) [11]=Array ( &
此文档下载收益归作者所有