首頁 php教程 php手册 新版PHP将向Java靠拢

新版PHP将向Java靠拢

Jun 13, 2016 pm 12:46 PM
java php web 應用程式開發 開放 新版 原始碼 環境 運行


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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles