新版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的源码,展开了安全检查。即使不是自身的安全漏洞,也要对可能出现问题的部分进行检查并进行修正。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
