PHP学习心得


PHP代码执行流程

<ul> <li><a href="https://www.cnblogs.com/yangjinqiang/p/10951606.html">https://www.cnblogs.com/yangjinqiang/p/10951606.html</a></li> <li><a href="https://blog.csdn.net/why444216978/article/details/84136573">https://blog.csdn.net/why444216978/article/details/84136573</a></li> </ul> <h2>PHP代码执行顺序</h2> <ol> <li>词法分析(扫描) <ul> <li>将PHP代码转换为语言片段(Tokens)</li> </ul></li> <li>语法分析(解析) <ul> <li>将Tokens转换成简单而有意义的表达式</li> </ul></li> <li>转化为opcode(编译) <ul> <li>将表达式编译成Opcodes</li> </ul></li> <li>顺序执行opcode(执行)</li> </ol> <h2>opcode</h2> <ul> <li>称为操作码(Operate Code),当解释器完成对脚本代码的分析后,生成可以直接运行的中间代码。</li> </ul> <h2>Opcode cache</h2> <ul> <li>目地是避免重复编译,减少CPU和内存开销</li> <li>opcode cache能带来CPU和内存开销的降低 <ul> <li>如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作。</li> </ul></li> </ul> <h2>为什么要使用Opcode cache</h2> <ul> <li>请求PHP脚本时经过五步,Zend引擎必须从文件系统读取文件、扫描其词典和表达式、解析文件、创建要执行的计算机代码(称为Opcode),最后执行Opcode。</li> <li>每一次请求PHP脚本都会执行一遍以上步骤,如果PHP源代码没有变化,Opcode也不会变化,没有必要每次都重行生成Opcode,结合在Web中无所不在的缓存机制,可以把Opcode缓存下来,以后直接访问缓存的Opcode更快</li> </ul>

页面列表

ITEM_HTML