php的整体设计理念是什么?

时间:2009-03-12 20:01:01

标签: php language-features language-design

我最近通过针对客户端的Drupal应用程序第一次遇到PHP(5)。这个体验肯定没有什么困难(例如文档很好),但我从来没有想过,“这真的很聪明!”或“哇这很有趣!”而且,我无法准确预测函数的命名方式,或确定一个指导原则。

这与Ruby相反,例如,在所有东西都是对象的情况下,方法是可预测的和伪多态的,并且块是使用的乐趣(仅举几个例子)。对比的其他语言亮点:Python的列表推导改变了你对迭代的思考方式,C通过它的指针和位操作带你回到硬件,javascript的无名功能和高级支持哈希,甚至是SQL的奇妙之处crustiness迫使你欣赏你的数据并在关系上思考它。

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

编辑:

好吧,所以大家一致认为PHP是网络程序员的猴子扳手。我可以接受。我只是在寻找洞察力,但我想我已经拥有了它。我当然非常感谢mod_php / libphp。我能够在两周内将我的应用程序推出门,没有任何PHP经验,所以我想这也说明了一切。

感谢您的帖子。

9 个答案:

答案 0 :(得分:21)

来自php web site

  

PHP是一种嵌入HTML的脚本   语言。它的大部分语法都是   从C,Java和Perl借来的   几个独特的PHP特有的功能   投入。语言的目标是   允许Web开发人员编写   快速生成动态页面。

换句话说,并没有真正的设计理念:完成工作是一种混合和混合的想法(显然是从Perl继承的,呵呵)。

答案 1 :(得分:12)

PHP的设计理念:

  

D'哦!

答案 2 :(得分:11)

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

正如你所指出的那样,PHP有很好的文档记录,这对你的许多竞争对手来说都是如此。

答案 3 :(得分:9)

你必须记住的是PHP是一场革命。当时由Rasmus Lerdorf创建的PHP实际上没有动态网站的替代品。好吧有CGI-GATEWAY(它基本上是php),它涉及编写你自己的C语言来提供服务页面 - 有一些东西叫做ASP但当时很垃圾,只能在很少和远处的窗口盒上运行幅。

你可以说它成为或者它的设计理念的原因是它是第一个用于网络的大众市场脚本语言。它的设计并不像种植的那么多,这就是为什么它看起来有点混乱,但它确实起了作用。

答案 4 :(得分:2)

关于功能命名/惯例,当然没有任何设计理念 除非你将不一致视为一种设计理念:)

答案 5 :(得分:2)

从PHP书中我有:

  

PHP是一个开源项目   Apache Software Founation就是这样   最流行的Apache Web服务器附加组件   模块,约占Apache的53%   具有PHP功能的HTTP服务器。   PHP特别适合Web   因为它的数据库应用程序   用于Web和Web的集成工具   数据库环境。特别是,   嵌入脚本的灵活性   在HTML页面中允许轻松集成   HTML演示文稿和代码。该   数据库层集成支持是   也很优秀,超过15   可与之交互的库   几乎所有流行的数据库服务器。

继续谈论以下优势:

  
      
  • 开源
  •   
  • 可灵活地与HTML集成
  •   
  • 适合复杂的项目
  •   
  • 快速运行脚本
  •   
  • 平台和操作系统便携式
  •   
  • 社区努力
  •   

我知道这并没有真正回答你的问题,但也许它可以更高层次地浏览一下PHP的所有内容。

来自:Hugh E. Williams&大卫莱恩。 使用PHP和MySQL的Web数据库应用程序。第2版​​。

答案 6 :(得分:2)

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

答案 7 :(得分:2)

做你想做的事

答案 8 :(得分:0)

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

我同意这种语言有点混乱,但它确实支持像Facebook,Digg和雅虎的部分网站。除了Twitter之外,不能真正对Ruby(更具体地说是rails)说同样的话。