首先 ,插一句题外话: 从我发表第一篇PHP执行原理的文章到现在, 已经快2年了, 我很高兴的看到这俩年里PHP中文圈里 ,越来越多的人开始研究PHP源码, 也有越来越多的人开始从事PHP扩展开发.
关于PHP的执行原理, 我想我BLOG的读者都能脱口而出:
- 词法分析, 去掉注释, 空白, 得到TOKEN
- 语法分析, 在这个过程中生成Opcode array (op_array)
- 解释执行, 执行op_array, 一条一条的解释执行Opline(SWITCH, CALL, GOTO)
今天有人问我, 说他看到有PHPer在说unless语句, 我很是纳闷, 后来才知道, 原来是一个国外的PHP大牛自己Hack了PHP的源码, 加入了一个unless语句.
很有意思, 今天, 我也就在这里为大家演示, 如何为我们自己的PHP加入unless语句..
如果你是不了解PHP的执行过程, 请先花点时间看看我之前的文章深入理解PHP原理之Opcodes:
我们的目标, 是要实现如下的语法(以php 5.2.11为基础):