首頁 後端開發 php教程 新版PHP將向Java靠攏_PHP教程

新版PHP將向Java靠攏_PHP教程

Jul 21, 2016 pm 04:11 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的源碼,展開了安全檢查。即使不是自身的安全漏洞,也要對可能出現問題的部分進行檢查並進行修正。

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/313964.htmlTechArticle所謂的「PHP」就是開放原始碼的Web應用開發/運作環境,日前《日經Open System》記者就今後PHP開發中心的發展計畫等問題訪問了該中心成員Zee...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

在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程序在字符串中計數元音 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中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

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

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

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

突破或從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,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

See all articles