Zend 引擎如何编译 php 代码或 php 编译器如何工作?
Posted
技术标签:
【中文标题】Zend 引擎如何编译 php 代码或 php 编译器如何工作?【英文标题】:How zend engine compile php codes or How php compiler works? 【发布时间】:2011-07-19 15:23:15 【问题描述】:您好,任何人都知道zend 引擎是如何编译php 代码的。 例如。在java中,我们的代码在转换为机器语言之后被编译为字节码。同样明智的是zend引擎如何编译php代码?请帮助我。
【问题讨论】:
(相关) where can i learn php internals, how they work ? 【参考方案1】:这与 PHP 的想法是一样的:
第一步:PHP源代码(即一些文本)被编译成一组操作码 第二步:执行那些操作码。默认情况下,每次执行 PHP 脚本时都会进行此编译——这会占用一些 CPU。
这就是你可以使用一些操作码缓存的原因(如APC extension),将操作码存储在内存中——避免冗余编译步骤。
您可以在 Sebastian Bergmann 的以下演示文稿中找到有关这些过程的一些有趣信息:PHP Compiler Internals
【讨论】:
嘿,你有什么好的详细文档,请与我分享。 我已经编辑了我的答案,其中包含指向提供一些信息的演示文稿的链接;但它是 PHP 的一部分,教程或任何东西都没有真正涵盖:您经常会从 core-developpers 得到的答案是“查看源代码” 那个链接失效了,我想这是同一个演示文稿:scribd.com/doc/18171982/PHP-Compiler-Internals【参考方案2】:Zend 引擎在 PHP 内部用作编译器和运行时引擎。 PHP 脚本被加载到内存中并编译成 Zend 操作码。执行这些操作码并将生成的 html 发送到客户端。
【讨论】:
以上是关于Zend 引擎如何编译 php 代码或 php 编译器如何工作?的主要内容,如果未能解决你的问题,请参考以下文章