Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->PHP4/PHP5 ->正文

ORACLE PHP教程--您了解 PHP 吗?

来源: ORACLE 作者:webmaster 时间:2007-04-16 点击: [收藏] [投稿]

    Rasmus Lerdorf  PHP 的创始人讲述了他对 PHP 现象、怎么样形成和推动了这种语言的发展、以及 PHP 的发展方向的看法

    PHP 无处不在。在其 2004 年 2 月的 Web 服务器调查中,Netcraft [www.netcraft.com] 调查了 47,173,415 个域,并发现 15,205,474 个已经安装了 PHP。这大约为 Web 上所有域的 32%,并且这种增长势头没有减缓的迹象。

[phpstats.png]

PHP 的初期

    我在大约 10 年前开始开发 PHP。那时在名词“开放源代码”出现且 GPL 和自由软件广为人知之前很久。正如许多已经变得流行的开放源代码项目一样,动机决不是哲学上的或者甚至是自我陶醉。它纯粹是因为需要一种工具来解决现实中与 Web 相关的问题。在 1994 年,当提到 Web 开发工具时,选择相当有限。我发现当我自己在用 C 或 Perl 为 Web 站点编写动态组件时,从一个问题到另一个问题的代码重叠现象十分显著。出于性能的考虑,我越来越远离 Perl,而倾向于 C,因为必须将 Perl 作为一个单独的 CGI 运行的 fork+exec 开销限制性太强了。

    PHP 最早的未发布版本主要是常用 C 函数的一个 C 资料库,我编写了这些 C 函数,以便能够容易地从一个开放源代码项目到另一个开放源代码项目进行重用。我有一个简单的状态机驱动的分析器,它从 HTML 文件中挑出标记,然后调用我编写的后端 C 函数。这些代码最初是作为一个称为个人主页工具 (Personal Home Page Tools) 的程序包公开发布的,这个程序包中的每个工具都是关于怎么样使用系统来解决关于个人主页的常见问题的一个例子。在之后的某段时间,我从中分出了一部分工具并把它称为 FI,代表表单解释程序 (Form Interpreter)。FI 幕后的想法是,当您接收到一个表单提交的结果时,您需要做一些常见的事情,而它能够处理所有这些事情。一些早期的例子:

  <!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
Hey, you are using Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->

<!--ifless $numentries 1-->
Sorry, that record does not exist<p>
<!--endif exit-->

Welcome <!--$user-->!<p>
You have <!--$index:0--> credits left in your account.<p>

<!--include /text/footer.html-->

    我的 FI 的分析器非常糟糕,这促使我试着去编写一个更好的分析器。我抛弃了 <!-- cmd --> 语法,而改用 <? cmd >,重新将 Personal Home Page Tools 的某些部分和这个新的 FI 工具结合起来,并在 1995 年底将它作为一个名称为 PHP/FI (这个名称有点半开玩笑性质地模仿了 TCP/IP)的程序包对外发布。PHP/FI 在接下来的几年里正好和 Web 一起得到了发展。在 1997 年,两个正使用 PHP/FI 的以色列人 Zeev Suraski 和 Andi Gutmans 问我是否有兴趣使用一个新的分析引擎,他们将为下一个版本的 PHP 编写这个引擎。我召集了其它一些一直在为 PHP/FI 提供补丁和代码的人,我们共同协作在 1998 年中期发布了 PHP 第 3 版。这可能是 PHP 发展期间最关键的时刻。如果这个项目一直是一个人在努力,那么当时它可能已经失败了,如果一群刚刚组合在一起的陌生人弄不清楚怎么样朝着一个共同的目标去努力,那么这个项目也可能很容易就失败了。无论如何,我们设法解决了我们以自我为中心的问题和其它的个人问题,这个项目成长了起来。为这个项目做出贡献的人的数量在稳定地增长,现在我们打算在 2004 年上半年的某个时候推出 PHP 5.0 版本。

编程语言中的“丑小鸭”

    关于 PHP 的流行观点可以分为两个极端。语言纯化论者往往不喜欢许多有点随意的特性实施和这些年来出现的一些前后不一致的地方。同时,实际问题的解决者往往喜欢 PHP 似乎已经读懂您的意图,并表现出它就是理想的 Web 问题解决工具。

    在使纯化论者抓狂的事情中有:函数名称不区分大小写但变量名称区分大小写;内置函数的名称前后不一致;没有强制 PHP 开发人员使用任何真正的结构,从而使得很容易写出凌乱的代码。实际上我不得不同意这些批评意见,但我至少可以试着解释一下我们怎么样以及为什么到了这种状态。

    首先,关于函数名区分大小写的问题:这可以回溯到最早的 PHP 版本。在 Web 的早期(XHTML 之前很久),所有的 HTML 标记标签都是大写的是很常见的。但因为这些标签是不区分大小写的,所以人们在这上面并不是非常一致。我希望人们对待具体的 PHP 标签基本就像和对待其它的标记标签一样,这意味着 PHP 的标签也将是不区分大小写的。当 PHP 变得更加高级并且拥有了如变量之类的特性时,使这些新的特性区分大小写并没有什么害处,因为它没有破坏对已有的 PHP 页面的向后兼容性。回过头去,突然处理最初的简单标签(这些标签实质上只是函数调用)时,区分大小写将破坏那些页面,并使它们在更新的 PHP 版本中不可用。无论怎么样,人们不应该拥有只是名称大小写不同的函数。尽管如此,回想起来,当相对少的人在使用 PHP 时,尽早地打破向后兼容性是个好主意;但在那时,没有人预料到 PHP 的惊人成长。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:PHP程序之服务器负载测试   下一篇:ORACLE PHP教程--从原型到产品的最短距离

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号