✔ 最佳答案
PHP係一種流行嘅開放原始碼程式語言。官方正式名稱係「PHP: Hypertext Preprocessor」嘅遞歸縮寫。
PHP主要用喺伺服器端應用程式同動態網頁上,但係亦都可以用喺命令列上執行,或者係開發獨立嘅圖形使用者介面(GUI)。
對PHP嘅批評
即使PHP係廣受歡迎嘅程式語言,但係仍然受到好多批評,例如:
PHP無原生支援Unicode或者多位元字集(例如中文、日文、韓文等需要用兩個或以上ASCII字元嚟表示嘅字集),導致用PHP寫嘅軟體喺國際語言化上遇到相當多嘅困難。
PHP無名字空間(Namespace)嘅設計,降低咗PHP語言設計上嘅彈性,亦都導致函式名稱過長嘅問題。
PHP嘅函式命名規則非常混亂,好多函式功能類似,但係用上不同嘅函式名稱同參數順序,例如strpos($haystack, $needle) 同 in_array($needle, $haystack)、strcasecmp 和 stristr,導致編寫PHP程式時需要做相當多嘅手冊查詢工作,初學者都往往不知不覺重新編寫已經內建嘅函數,降低咗開發嘅效率。
PHP嘅魔術引號(magic quotes)功能可以自動處理使用者輸入字串中嘅脫逸字元,有效避免SQL隱碼攻擊(SQL injection),但係因為唔係每個使用者嘅輸入都會寫入去資料庫,處理呢啲唔會寫入資料庫嘅字串就浪費效能。另外唔係每個PHP環境都會開啟魔術引號,設計程式時需要對不同嘅伺服器環境做適應,造成程式設計上嘅麻煩。魔術引號功能預計會喺PHP 6時取消。
有啲PHP嘅延伸函式庫唔係執行緒安全(threadsafe),導致PHP安裝響多執行緒嘅伺服器例如Apache 2上會發生唔穩定嘅情況。[5]
發展歷史
[編輯] PHP/FI
1994年,加拿大籍嘅程式設計師Rasmus Lerdorf開發咗一組Perl腳本,用嚟追蹤佢嘅線上履歷幾時畀人使用到,佢叫呢組腳本做「Personal Home Page Tools」。隨著呢個腳本嘅功能日趨複雜,Lerdorf開始用C語言做一啲功能,例如連接資料庫、簡易嘅動態網頁開發。Lerdorf決定釋出呢組程式嘅原始碼,畀大眾可以修改,並叫呢個程式做PHP/FI(Personal Home Page / Forms Interpreter)。隨著PHP 3出現,PHP/FI好快就結束開發。
[編輯] PHP 3
1997年,Tel Aviv公司嘅Zeev Suraski同Andi Gutmans改寫PHP嘅解析引擎PHP/FI,Rasmus Lerdorf亦決定中止PHP/FI嘅開發,並將PHP重新命名做"PHP: Hypertext Preprocessor"。經過9個月嘅測試,喺1998年釋出咗PHP 3。PHP 3最大嘅特色係加入咗延伸函式庫嘅功能,吸引咗好多人投入PHP延伸函式庫嘅開發,豐富咗PHP嘅功能,另外物件導向嘅功能亦喺PHP 3開始出現(不過唔係好完整)。1999年兩個人喺以色列成立咗Zend Technologies公司嚟投入PHP嘅開發工作,並且開始製作下一代嘅PHP解析引擎 - Zend引擎。
[編輯] PHP 4
2000年5月22日,以Zend引擎 1.0為解析引擎嘅PHP 4.0 發佈。呢個亦都係PHP開始大受歡迎嘅版本,目前PHP 4仲做緊安全性嘅更新,最新版本係2007年2月發佈嘅PHP 4.4.5版。
[編輯] PHP 5
2004年7月13日,以Zend引擎II為基礎的PHP 5.0 發佈,同時亦加入咗好多新特性:[1]
更完整嘅物件導向支持:基本上到PHP 5之後PHP先算係比較完整嘅面向對象語言。
透過新嘅Zend引擎,提升咗PHP執行嘅速度。
對MySQL資料庫有更完整嘅支援。
更好嘅XML支援。
內建SQLite資料庫(但係喺PHP 5.1取消內建,改用延伸函式庫嘅方式)。
整合咗SOAP嘅支援。
提供例外處理。
新嘅資料庫存取介面PDO(PHP Data Objects)。
最新嘅版本係2006年2月發佈嘅5.2.1