新版PHP將向Java靠攏_PHP教程
所謂的「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脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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