15

我最近通过一个客户端的 Drupal 应用程序第一次接触 PHP (5)。体验当然没有什么困难(例如文档很好),但我从来没有想过,“这真的很聪明!”,或者“哇,这使用起来很有趣!” 此外,我无法准确预测函数将如何命名,也无法确定要遵循的指导原则。

这与 Ruby 形成鲜明对比,例如,在 Ruby 中,一切都是对象,方法是可预测的和伪多态的,块使用起来很有趣(仅举几个例子)。其他语言的对比亮点:Python 的列表推导改变了你对迭代的看法,C 用它的指针和位操作把你带回了硬件,javascript 的无名函数和对哈希的高级支持令人惊讶,甚至 SQL 在它的硬性迫使你欣赏你的数据并以相关的方式思考它。

那么考虑到这一点,php的亮点是什么?该语言的整体设计理念是什么?我知道 php 总体上并不享有很高的声誉,但我一直听说这是一个认知问题,因为大量非专业开发人员敲打复制和粘贴代码。

编辑:

好的,所以共识是 PHP 是 web 程序员的扳手。我可以接受。我只是在寻找一个洞察力,但我想我已经有了它。例如,我当然很欣赏 mod_php/libphp。而且我能够在没有任何 PHP 经验的情况下在两周内完成我的应用程序,所以我想这也是不言而喻的。

感谢您的帖子。

4

9 回答 9

20

php 网站

PHP 是一种嵌入 HTML 的脚本语言。它的大部分语法都是从 C、Java 和 Perl 中借用的,并加入了一些独特的 PHP 特定功能。该语言的目标是允许 Web 开发人员快速编写动态生成的页面。

换句话说,并没有真正的设计哲学:它是完成工作的各种想法(显然继承自 Perl,呵呵)。

于 2009-03-12T20:06:28.557 回答
13

PHP的设计理念:

哦!

于 2009-03-12T20:16:24.620 回答
11

PHP 的重点是快速完成工作,而不是聪明。这并不是说你不能用 PHP 编写漂亮、干净、面向对象的代码。我认为大多数 PHP 程序员出错的地方在于认为因为可以在 HTML 中嵌入 PHP,所以必须这样做。我自己的 PHP 代码是高度面向对象的,根本不包含任何嵌入代码(除了初始页面)。

正如您所指出的,PHP 有很好的文档记录,对于许多竞争对手来说,这比您可以说的要多。

于 2009-03-12T20:13:07.153 回答
9

您必须记住的是 PHP 是一场革命。在 Rasmus Lerdorf 创建 PHP 的时候,动态站点确实没有替代品。好吧,有 CGI-GATEWAY(基本上是 php),它涉及编写你自己的 C exe 来服务页面 - 有一个叫做 ASP 的东西,但当时它相当垃圾,只在 Windows 盒子上运行,这些盒子在网。

你可以说它存在的原因或者它的设计理念是它是第一个面向网络的大众市场脚本语言。它的设计不如成熟,这就是为什么它看起来有点乱的原因,但它确实可以完成工作。

于 2009-03-12T20:55:44.837 回答
2

关于函数命名/约定,它背后当然没有任何设计理念。
除非您将不一致视为一种设计理念:)

于 2009-03-12T20:06:46.013 回答
2

从一本 PHP 书我有:

PHP 是 Apache 软件基金会的一个开源项目,它是最流行的 Apache Web 服务器附加模块,大约 53% 的 Apache HTTP 服务器具有 PHP 功能。PHP 特别适用于 Web 数据库应用程序,因为它具有用于 Web 和数据库环境的集成工具。特别是,在 HTML 页面中嵌入脚本的灵活性允许 HTML 表示和代码的轻松集成。数据库层集成支持也非常出色,有超过 15 个库可用于与几乎所有流行的数据库服务器进行交互。

它继续谈论以下优点:

  • 开源
  • 灵活地与 HTML 集成
  • 适用于复杂项目
  • 快速运行脚本
  • 平台和操作系统可移植
  • 社区努力

我知道这并不能真正回答您的问题,但也许它提供了对 PHP 的全部内容的更高层次的了解。

来自:休·E·威廉姆斯和大卫·莱恩。使用 PHP 和 MySQL 的 Web 数据库应用程序。第 2 版。

于 2009-03-12T20:20:39.600 回答
2

PHP 是具有 Perl 语法的 HTML 文档的服务器端包含系统。从那以后,它一直试图超越其传统。

于 2009-03-12T20:46:30.147 回答
2

做你想做的

于 2009-03-13T00:08:39.723 回答
0

我认为 php 的好处是可以快速启动和运行,而且对初学者非常友好。我在学校学习的第一门语言是 Java,所以 PHP 很容易上手。当我学习 Java 时,第一次接触 OO 的概念很难,而且我并没有完全理解。但是由于您不需要在 PHP 中使用 OO,因此非程序员很容易学习语言基础知识,然后能够继续学习对象。

我同意这种语言有点混乱,但它确实为 Facebook、Digg 和部分雅虎等网站提供了动力。不能对 Ruby(更具体地说是 rails)说同样的话,除了 Twitter。

于 2009-03-13T07:49:54.937 回答