概述:今天在看鸟哥的博客:PHP 8新特性之JIT简介(大家有兴趣可以直接点击链接查看)看到了一个之前一直有听过的opcode但是没有深入了解的扩展,花了2个小时,查阅了些资料,和圈内人稍微探讨了下,对其认识做个记录。
1.什么是opcode?
opcode:解释器分析代码之后,生成可以直接运行的中间代码,就称做操作码opcode
这个是我在网上找的比较笼统的解释,为了能够更加深入了解它,我们认识下php的生命周期:
如图所示:
- .php - Zend引擎从文件当中读取文件
- Lexicon scan- 扫描词典和表达式(将PHP代码转换为语言片段(Tokens)
- Parse - 将Tokens转换成简单而有意义的表达式
- Create Opcode - 将表达式编译成Opocdes,即创建要执行的计算机代码(称为Opcode)
- Process Opcode - 最后执行Opcode,顺次执行Opcodes
我这边不再去追溯opcode的前身,由什么衍变而来,专注于它给我们做了什么??
2.opcode在php7.1版本之后,为我们做了什么?