2000年, PHP4.0发布的时候,引入了Zend Engine. Zend引擎把PHP代码的执行切分成两个阶段:
一. Zend Engine 解析PHP代码并生成二进制中间码Zend Opcodes, Zend Opcodes类似于java bytecodes
二. Zend Engine解释运行Opcodes
这些Opcodes被设计成可能被加载在内存中,这是通过opcode caching extensions实现的。
关于这些缓存扩展可以查阅:
http://en.wikipedia.org/wiki/List_of_PHP_accelerators
缓存扩展仅仅是为了避免PHP代码被重复编译。如果缓存中有相同可用的代码,则直接执行。
这本身并非加速了PHP代码本身的执行速度,只是简化了步骤来提高性能。
你需要通过optimizer extensions来优化PHP代码,获得代码执行速度的提高。
PHP编译实际上都是编译成中间码,实际上PHP的编译还有一种形式,即编译成本地机器码或者WEB服务器的扩展。
PHP内核将类的继承实现放在了"编译阶段" http://www.nowamagic.net/librarys/veda/detail/1515
参考:http://blog.****.net/iefreer/article/details/7707483