PHP编译数据吗?

时间:2009-09-02 20:39:31

标签: php asp.net compiler-construction

我是学习PHP的学生。我基本上使这些东西工作,但从来没有想过php.exe(在Windows上)是如何工作的。

它是否编译了它必须处理的东西?

我问的原因是因为有人告诉我,ASP.NET必须编译所有依赖于网站的数据才有/接收,就像通过表单上传的所有内容一样。 他声称PHP在这个主题上更快,因为它不需要编译任何东西。

我找不到任何一个主题的好信息,所以我在这里问。

5 个答案:

答案 0 :(得分:5)

PHP是一种脚本语言,所以不是这样编译的。它被解析为内部表示,然后由PHP运行时“运行”。

您的朋友在编译ASP.NET时是正确的。但是,它只是编译的实际程序指令,而不是数据。 PHP和ASP.NET处理传入(和传出)数据的方式原则上非常相似。如果有的话,ASP.NET将比PHP更快,因为它是编译的,因为编译的代码通常运行得更快。

答案 1 :(得分:2)

正如@chaos所说,ASP.NET不会“编译”通过表单收到的数据。

你的同事所指的最有可能是在ASP.NET中被称为ViewState,如果他正在谈论这个,他是正确的,尽管他把它误称为“编译”。 ViewState会对表单的状态进行编码和存储,服务器需要解码此数据并将其应用于对象模型。它使用这些信息来引发程序员可以在服务器端挂钩的事件,从而为编程提供更丰富的模型。

而且,是的,这是一个性能打击。 PHP可以比ASP.NET快;我曾经是一名PHP开发人员和ASP.NET开发人员,我可以证明这一点。

但性能并非一切 - 数据传输花费的时间多于在Web服务器上处理的所有时间,只有极少数利基案例。您的系统的其他方面比原始推动力更重要。 ASP.NET将原始性能换成其他东西。

这是ASP.NET闪耀的地方,PHP失败可怕。 PHP无法提供几乎所有的ASP.NET功能,例如模块化,可维护性,安全性,可重用性和一般基本库功能。是的,PHP可以比ASP.NET更快。但ASP.NET仍然优越。

当然,ASP.NET也很糟糕,IMO,但这更多是因为我坦率地不同意的一些设计决策。但我宁愿在一周的任何一天使用PHP。

答案 2 :(得分:1)

PHP和ASP.NET通常都不会通过表单编译(解释为程序指令并转换为可执行代码)数据。

可能您的员工可能会对编译和数据清理之间的差异感到困惑。我真的不知道。

答案 3 :(得分:1)

没有。您正在讨论的数据类型作为Apache的环境数据传递给PHP。如果需要,可以使用php.exe的命令行选项自己完成。

除非数据是程序资源的一部分,否则很少编译数据。

PHP本身是一种解释型语言,这意味着代码永远不会被编译成适合机器的格式,只需通过解释器进行扫描和解析即可执行。

答案 4 :(得分:0)

Tor Haugen是对的,PHP是一种解释型语言,意味着文件在服务器上保持为纯文本,并按照请求进行解释。 ASP.Net有点混合,因为* .aspx,* .ashx,* .ascx等文件都被解释,而外部库被编译成DLL文件,然后像普通桌面应用程序一样链接。例如,如果您有几个项目,其中一个是依赖于几个类库的ASP.Net Web应用程序,那么您将拥有多个纯文本文件(Web应用程序文件)和几个由以下文件生成和使用的DLL文件:服务器。您可以使用PHP的DLL文件,但它不是无缝的。通常这种“类库”只是“包含”为附加的纯文本文件