【问题标题】:Is the PHP language resultantly C?PHP 语言最终是 C 语言吗?
【发布时间】:2011-01-05 03:10:45
【问题描述】:

好的:我编辑了我的问题:我在某处听说 php 语言是用 C 编写的。

那么,例如,当您在 php 中运行 date("Ymd");file_get_contents("file.txt"); 等函数时会发生什么?

它将代码转换为 C 并请求服务器,还是由 php 完成?

如果它确实翻译并请求,那基本上是C?

【问题讨论】:

  • PHP 是用 C 编写的,而不是 C++。何不看一看 PHP 源代码,亲眼看看?
  • 不,它不会将任何东西翻译成 c++,尽管 facebook 开发了一个编译器,可以将 PHP 翻译成 C 代码,然后翻译成机器语言,称为 hiphop 或类似的东西。
  • PHP 解释器是用 C 编写的。date() 调用确实由用 C 编写的内部编译库执行。

标签: php c programming-languages


【解决方案1】:

这是不正确的。

如果您的意思是 PHP 的实现语言,它是 C,而不是 C++;请参阅实现语言下的PHP wikipedia page

然而,这并不意味着它将代码“翻译”为 C; PHP 是一种解释型语言。

在执行代码时,它当然必须使用用 C 编写的函数,因为它本身也使用 C。但是,不会发生“翻译”成 C 的情况;代码由 PHP 语言简单地解析,然后语言本身调用合适的代码。

您可能想阅读more on interpreted languages,这应该可以让您更好地理解。

【讨论】:

  • 我问,为什么会这样?优势在哪里?直接用C写代码不是更有用吗?
  • @Francesco 优点是您可以更轻松、更快地开发。这就是解释语言的目的。但是,是的,你可以用 C 语言完美地编写你的网站……如果你有时间……
【解决方案2】:

在任何解释性语言中,语言语法只是以编写解释性语言的语言实现的函数和结构的包装。

【讨论】:

    【解决方案3】:

    原始 PHP 是一个非常简单的解释器,它不执行任何代码生成。但是还有一个替代实现,一个 PHP 到 C++ 编译器 HipHop:

    https://github.com/facebook/hiphop-php

    【讨论】:

      猜你喜欢
      • 2012-12-29
      • 2022-11-15
      • 2015-04-11
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 2010-10-03
      相关资源
      最近更新 更多