PHP 解释器/编译器

4

我正在努力理解php编译器/解释器的工作原理。

我尝试下载了php源代码并尝试了解它的工作原理,但是我没有找到合适的文档。如果有人能够介绍一下构成php编译器的模块以及Apache服务器如何使用php编译器,那就太好了。


1
Apache可以通过多种方式与PHP通信,最常见的是mod_php和FastCGI。你有编译器/解释器的经验吗?如果没有,那么我怀疑你能否立即深入了解这么复杂的一个。 - Xiong Chiamiov
1
你需要从学习编译器/解释器的基础知识开始(如解析器、词法分析器、标记等)。 - webbiedave
@webbiedave 谢谢..我想了解控制流程,而不是php代码的编译方式。希望我表达清楚。我想了解像熊说的那样,apache如何使用php编译器。我应该从哪里开始? - Karthick
1个回答

2

正如webbiedave所说,您可能需要学习编译器/解释器的基础知识。您可以在文件Zend/zend_language_scanner.l和Zend/zend_language_parser.y中找到大部分解析器和词法分析器的内容。

如果您想了解php的工作原理,我建议您在Zend\zend.c的zend_execute_scripts()开头设置断点,并在该行处停止。

if ((ret = EX(opline)->handler(execute_data TSRMLS_CC)) > 0)

在文件Zend\zend_vm_execute.h中,然后逐步执行代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接