PHP:新版将向Java靠拢

原创 2004年09月22日 00:33:00

PHP:新版将向Java靠拢


 
所谓的“PHP”就是开放源码的Web应用开发/运行环境,日前《日经Open System》记者就今后PHP开发中心的发展计划等问题采访了该中心成员Zeev Suraski。Zeev Suraski表示,新版PHP中将导入try、catch等语句,从而更接近Java,以便更容易地进行大型系统的开发。(采访者:高桥 信赖)

--请您谈一下决定开发PHP的起因。

  Rasmus Lerdorf于1995年首先公布了PHP。1997年我在制作以色列大学网页及网上商店站点时,使用了当时名为PHP/FI(Personal Home Page/Form Interpreter)的工具,这时才开始接触到PHP。在使用的过程中,发现了一个很大的bug。由于源码是公开的,所以我对bug产生的原因进行了调查并做了修改,在调查中发现还有很大的改进余地。于是就和当时共同做项目的Andi Gutmans一起对PHP/FI脚本执行引擎进行了修改。修改后的执行引擎交给Lerdorf后,就成了新版PHP3.0的正式执行引擎。

  通过改进脚本执行引擎,我们开发出了速度更高的Zend Engine。Zend这个名字是Zeev与Andi的组合。嵌入了Zend Engine的PHP就是目前的版本PHP4。原来的程序是边读入边解释来执行,后来改成了每个执行周期解释一次 ,因此执行100个周期就要进行100次同样的解释处理。而Zend Engine则是一开始就对整个文件的脚本进行解释 ,然后再开始执行。由于大幅削减了解释过程,所以执行速度得以大幅提高。

  PHP4在发表后2个月内就被下载了26万5000次。据美国调查公司Netcraft统计,目前PHP至少被安装在600万个域名服务器上。

  我想PHP受到人们欢迎的最主要原因就是简单实用。曾有人在给我的邮件中表示:“尽管没有编程经验,但我使用PHP仅用3个小时就写出了简单的程序”。使用Java就达不到这种程度。此外,PHP是针对WWW开发的,因此,还可以方便地处理Cookie与表单。

  PHP是免费的,今后仍将继续免费发布,但考虑到商业成本与支持产品的要求,于1999年设立了以色列Zend,并开发出高速PHP软件及综合开发工具进行销售。

--预定2002年底发布的新版PHP5中,准备扩展哪些功能?

  将进一步改进面向对象功能,使大型系统的开发更加容易。尽管PHP已经具有类与子类等,但PHP5会更接近Java。将引入了try、catch等Java具有的特殊处理语句结构。

  在PHP4中,函数作为变量使用,即使给出一个对象也不会发生变化。PHP可以标准赋值,对象也可以赋值,所以函数值并非对象本身,而是一个拷贝过来的值。当函数需要变更为对象数值时,就要在作为变量的对象前加上“&”符号来专门提示。在Java中不需要这样的提示,而PHP5则采用的是与Java相同的模式。

  此外,PHP5还导入了名称空间(Name Space),名称空间确定后,函数、变量、类名的有效范围均被限制在名称空间内。当清楚名称范围后,在使用变数与函数名时就可以忽略重复的名称,这也方便了大型程序的开发。

  名为“stream”的新功能也是一项便利的功能。它可以使WWW服务器与ftp服务器上的文件与本地文件使用同样的函数。也就是说,fopen(本地文件名)可以像fopen(hppt://主机名/文件名)一样使用。压缩文件可像普通的非压缩文件一样处理。而且不用等到PHP5,在以后发布的PHP4中就将安装上“stream”。

--有人指出,由于PHP为HTML嵌入型,和Java一样难以将显示(Presentation)与逻辑部分分离,难以实现模块化。

  事实上,使用PHP完全能够分离显示与逻辑部分。PHP有一项调出Java对象的功能。可以将PHP作为显示层、将Java对象作为逻辑层使用。

  另一个方法就是使用模板库Smarty的方法。Smarty是一个从HTML模板动态生成HTML的工具。即便HTML中完全没有写入PHP逻辑,也可以生成符合HTML的PHP运行结果。

  尽管如此,也并不是说在任何情况下分离显示与逻辑都是有利的。比如在开发小型系统时,分离后反而变得更复杂,很难对整体进行把握,最终影响开发效率,这就是缺点所在。

--2002年2月底,PHP曾被发现存在严重的安全漏洞。

  PHP在5年时间里都没有出现过严重的安全漏洞,但不幸在2月底发现文件上传功能存在问题。

  我们认为安全性至关重要,并对此采取了2项措施:首先,在接到安全漏洞报告的30个小时内制作并公布了补丁。哪种软件也不能保证绝对不会出现安全漏洞。今后如发现有严重安全漏洞,我们仍将会倾尽全力、迅速采取补救措施。

  其次,我们已经开始检查PHP的源码,展开了安全检查。即使不是自身的安全漏洞,也要对可能出现问题的部分进行检查并进行修正。

认识spark

认识spark Spark 是一个用来实现快速而通用的集群计算的平台。 在速度方面,Spark 扩展了广泛使用的MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。在处...
  • qq_26583415
  • qq_26583415
  • 2017年01月21日 17:17
  • 179

统计学学习笔记——(3)集中趋势

集中趋势(Central Tendency)是指一组数据项某一中心值靠拢的程度,它反映了一组数据中心点的位置所在。均值,中位数,众数均值(Mean):也称平均数,它是全部数据的算术平均。均值在统计学中...
  • alistair_chow
  • alistair_chow
  • 2017年11月14日 10:10
  • 207

SAP向J2EE靠拢

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";...
  • java169
  • java169
  • 2008年05月23日 18:52
  • 153

向J2ee靠拢

什么是J2EE呢?从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断...
  • beijirose
  • beijirose
  • 2013年02月21日 18:24
  • 57

MapReduce(一)

分布式并行编程框架特点:    MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce•编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程...
  • lhc2207221755
  • lhc2207221755
  • 2016年12月19日 22:33
  • 755

如何成为技术大牛

疑问最近在知乎有一个问题获得了广泛关注,因为这个问题反映了广大技术人员的普遍工作状态。 天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码? https://www.zhihu.com/que...
  • JeffreyNicole
  • JeffreyNicole
  • 2016年04月13日 09:05
  • 1438

PHp向文件中写入数据

$cars=array("Volvo","BMW","Toyota"); // $car=json_encode($cars); $file=fopen("welcome.txt","w+");/...
  • datouniao1
  • datouniao1
  • 2016年04月13日 17:32
  • 423

2017不容错过的Chart.js入门教程

Chart.js是一个简单、面向对象、为设计者和开发者准备的图表绘制工具库。   相信大部分人都一样,看到一大筐用文本或者表格形式呈现的数据就头疼。因为这种呈现方式也太无聊了吧。。。而且这对于我们...
  • xgocn
  • xgocn
  • 2018年01月17日 17:41
  • 315

php 向数据库表中插入数据

php插入数据页面insertData.php             向数据库中插入数据                                         ...
  • bkcnl
  • bkcnl
  • 2017年07月17日 16:51
  • 2564

继续向成熟男人靠拢

转自徒儿的人人。偶尔登录,却看一篇,嗯,立个标杆吧。 1.       未成熟男人喜欢喝酒,没事到哪吃饭都爱开瓶酒。       成熟的男人讨厌喝酒,需要喝酒的时候才会喝酒。   2.  ...
  • redoffice
  • redoffice
  • 2011年08月22日 10:42
  • 972
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP:新版将向Java靠拢
举报原因:
原因补充:

(最多只允许输入30个字)