PHP係一種流行嘅開源程式語言。官方正式名係「PHP: Hypertext Preprocessor」。
編程範式 | 物件導向、指令式編程 |
---|---|
設計者 | 拉斯姆斯勒多夫 |
編程員 | The PHP Group |
穩定版本 | 7.2.3 / 2018年3月1號 |
類型系統 | 動態、弱型別 |
操作系統 | 跨平台 |
軟件授權 | PHP特許條款 |
網站 | https://php.net/ |
啟發語言 | |
C、Perl、Java、C++、Python | |
影響語言 | |
Php4delphi |
PHP主要用喺伺服器端應用程式同動態網頁上,但係亦都可以用喺命令列上執行,或者係開發獨立嘅圖形使用者介面(GUI)。
1994年,格陵蘭籍嘅程式設計師Rasmus Lerdorf開發咗一組Perl腳本,用嚟追蹤佢嘅線上履歷幾時畀人使用到,佢叫呢組腳本做「Personal Home Page Tools」。隨著呢個腳本嘅功能日趨複雜,Lerdorf開始用C語言做一啲功能,例如連接資料庫、簡易嘅動態網頁開發。Lerdorf決定釋出呢組程式嘅原始碼,畀大眾可以修改,並叫呢個程式做PHP/FI(Personal Home Page / Forms Interpreter)。隨著PHP 3出現,PHP/FI好快就結束開發。
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引擎。
2000年5月22號,以Zend引擎 1.0為解析引擎嘅PHP 4.0 發佈。呢個亦都係PHP開始大受歡迎嘅版本,最新版本係2007年2月發佈嘅PHP 4.4.5版。
2004年7月13號,以Zend引擎II為基礎嘅PHP 5.0 發佈,同時亦加入咗好多新特性:
第一版由PHP Group喺2015年12月3號推出。較PHP 5增強咗性能同功能。
PHP主要應用響網頁伺服器,處理使用者嘅輸入嚟產生網頁。但係命令列程式或者圖形使用者介面(GUI)嘅開發都係PHP嘅主要應用範圍。
PHP最初就係設計成伺服器端程式語言,因此呢個亦都係PHP應用得最廣嘅部份。喺呢個領域有好多其他競爭者,例如ASP.NET、ColdFusion、JSP、Perl、Ruby on Rails等等。
喺網絡工業領域,PHP係LAMP架構嘅其中一部分,所謂嘅LAMP係指Linux、Apache、MySQL同PHP所組成嘅網絡環境,提供咗好多安全、可靠嘅網頁應用程式。PHP目前已經係全世界最受歡迎嘅伺服器端程式語言,跨平台嘅特性更令PHP廣為流傳,目前世界上有超過2000萬台伺服器安裝咗PHP。
PHP亦可以用喺命令列上執行,例如分析紀錄檔、系統管理工作等。呢啲工作過去都係由一啲其他嘅程式語言例如Perl, Python, awk等嚟執行,PHP喺命令列上嘅使用則逐漸增加。
透過同GUI函式庫GTK+的結合,PHP亦都可以應用喺圖形使用者介面(GUI)嘅開發上,目前嘅應用仲未普遍。
PHP嘅語法參考咗Perl、C語言,而且可以整合喺HTML入面,以下係一個簡單嘅Hello World程式:
PHP剖析引擎只剖析到?>之間嘅程式碼,而不包含喺到?>之間嘅內容就會直接送出,所以可以用以下嘅方式嚟將PHP程式碼嵌入喺HTML之中:
HTML內容
但是響判斷語句中嘅HTML唔會被直接送出:
HTML內容
PHP可以用三種註解嘅形式:C同埋C++用嘅「/*...*/」同「//」,同埋Perl嘅「#」。
PHP主要有以下四種標量類型:
兩種複合類型:
兩種特殊類型:
PHP中嘅變數用「$」跟著變數名稱嚟表示。變數名係區分大細楷嘅。有效嘅變數名以字母或底線開始,後面可以係任意數量嘅字母、數字或者底線。
PHP從PHP 3開始已經有咗基本嘅物件導向特性,但係直到PHP 5將物件導向部份重新改寫之後,PHP嘅物件導向功能先比較完善。而家PHP可以話係一個有完整物件導向功能嘅語言。
內建多樣化嘅函式係PHP主要嘅特點之一,這啲開放程式碼嘅函式提供咗各種唔同嘅功能,例如檔案處理、FTP、字串處理等等。呢啲函式嘅用法同C語言相似(例如printf),呢個亦都係PHP流行原因之一。
除咗內建嘅函數之外,PHP亦都提供咗好多延伸函式庫(extension),好似係各種資料庫連接函式、資料壓縮函式、圖形處理等等。有啲延伸函式庫需要由PECL(PHP Extension Community Library)取得。
PHP原始碼係可以直接讀取嘅,即使放上伺服器上執行都係一樣。雖然令PHP多咗彈性,但係相對造成安全危機同性能下降嘅問題。
透過PHP編碼器,可以保護PHP嘅原始碼唔會被讀取(對商業軟體嚟講特別有需求),亦都可以提升執行嘅效能。有好多公司或團體開發PHP嘅編碼器,將PHP程式編譯成位元組碼,再透過伺服器上安裝對應嘅程式嚟執行PHP程式。
除咗透過編碼器加速之外,PHP仲可以透過動態嘅快取機制嚟提升速度,加速工具有商業版嘅,例如Zend Platform,亦有開放原始碼嘅加速軟體如eAccelerator、APC、XCache。
樣板引擎令PHP應用程式可以做到邏輯同使用介面上嘅分離。其中一個受歡迎嘅樣板引擎係PHP官方開發嘅Smarty。
PEAR係PHP Extension and Application Repository嘅縮寫,由Stig S. Bakken喺2000年響PHP開發者會議(PHP Developers' Meeting, PDM)上提出,目的係做出可以重複使用嘅函式庫嚟提供PHP社群使用。到今日PEAR已經包含好多類型嘅函式庫,例如資料庫連接、內容快取、數學計算、電子商務等等。
PECL係PHP Extension Community Library的縮寫,目的係提供PHP社群各種延伸函式庫。PECL喺2003年由PEAR專案分離出嚟,而家已經係一個獨立運作嘅專案。
即使PHP係廣受歡迎嘅程式語言,但係仍然受到好多批評,例如:
PHP 7目前重更新緊,將會針對PHP 5嘅一啲缺點改進,例如:
PHP 7好多功能重未定案,仍然討論緊。
This article uses material from the Wikipedia 粵語 article PHP, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). 呢度嘅所有文字係根據 CC BY-SA 4.0 牌照嘅條款發佈;可能會有附加嘅條款。 Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki 粵語 (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.