PHP是什么意思?詳解PHP的特點、優(yōu)缺點及常見框架
一、PHP是什么意思
PHP是Personal Home Page的縮寫,已經(jīng)更名為 "PHP: Hypertext Preprocessor",即"超文本預(yù)處理器",是在服務(wù)器端執(zhí)行的腳本語言,尤其適用于Web開發(fā)并可嵌入Html中。PHP語言作為一種高級語言,其特點是開源,在設(shè)計體系上屬于C語言體系。PHP同時支持面向?qū)ο蠛兔嫦蜻^程的開發(fā),使用上非常靈活。
PHP語法學(xué)習(xí)了C語言,吸納Java和Perl多個語言的特色發(fā)展出自己的特色語法,并根據(jù)它們的長項持續(xù)改進提升自己,例如java的面向?qū)ο缶幊?,該語言當初創(chuàng)建的主要目標是讓開發(fā)人員快速編寫出優(yōu)質(zhì)的web網(wǎng)站。PHP可以讓很多接受過高等教育的初學(xué)者能很快接受并完成入門學(xué)習(xí),簡單好上手容易找工作自然粉絲多。根據(jù)W3Techs2021年9月16號發(fā)布的統(tǒng)計數(shù)據(jù),PHP在WEB網(wǎng)站服務(wù)器端使用的編程語言所占份額約為80%。
二、PHP語言的特點
PHP的語法類似于C語言, 但又省去了復(fù)雜的地址操作, 加入了面向?qū)ο蟮母拍? 簡潔的語法規(guī)則, 相對其他語言編輯簡單、實用性強, 使PHP成為容易學(xué)習(xí)和使用的語言。因為其解釋器是開源的, 導(dǎo)致了在所有的操作系統(tǒng)平臺都可以非常穩(wěn)定地運行, 這也是其能夠廣泛應(yīng)用的原因之一。PHP語言的特點有:
1、開源免費
PHP是一個受眾大并且擁有眾多開發(fā)者的開源軟件項目,Linux + Nginx + MySQL + PHP是它的經(jīng)典安裝部署方式,相關(guān)的軟件全部都是開源免費的,所以使用PHP可以節(jié)約大量的正版授權(quán)費用。不過PHP作為一個開源軟件,它缺乏大型科技公司的支持背景,網(wǎng)絡(luò)上對它的唱衰也是經(jīng)久不衰,不過它的持續(xù)迭代和性能持續(xù)增強的現(xiàn)實卻是鼓舞人心的,PHP社區(qū)用實際行動給予各種質(zhì)疑強有力的回擊。
2、快捷高效
PHP的內(nèi)核是C語言編寫的基礎(chǔ)好效率高,可以用C語言開發(fā)高性能的擴展組件;PHP的核心包含了數(shù)量超過1000的內(nèi)置函數(shù),功能應(yīng)有盡有很全面,開箱即用程序代碼簡潔;PHP數(shù)組支持動態(tài)擴容,支持以數(shù)字、字符串或者混合鍵名的關(guān)聯(lián)數(shù)組,能大幅提高開發(fā)效率;PHP是一門弱類型語言,程序編譯通過率高,相對其他強類型語言開發(fā)效率快。
3、跨平臺
每個平臺都有對應(yīng)的php解釋器版本,指針對不同平臺均編譯出目標平臺的二進制碼(PHP解釋器),php開發(fā)的程序可以不經(jīng)修改運行在windows、linux、unix等多個操作系統(tǒng)上。
4、數(shù)據(jù)庫連接的廣泛性
PHP可以與很多主流的數(shù)據(jù)庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數(shù)與這些數(shù)據(jù)庫建立起連接的,PHPLIB就是常用的為一般事務(wù)提供的基庫。
5、面向過程和面向?qū)ο蟛⒂?/strong>
在PHP語言的使用中,可以分別使用面向過程和面向?qū)ο螅?而且可以將PHP面向過程和面向?qū)ο髢烧咭黄鸹煊?,這是其它很多編程語言是做不到的。
6、動態(tài)圖像處理
用PHP動態(tài)創(chuàng)建圖像,PHP圖像處理默認使用GD2。且也可以配置為使用image magick進行圖像處理。
三、PHP的運行機制
PHP常見的運行模式有2種,分別是php-fpm和php-cli。當PHP 選擇運行在php-fpm模式下,所有的變量都是頁面級的,無論是全局變量還是類的靜態(tài)成員,都會在頁面執(zhí)行完畢后被清空。運行在php-cli模式下可以實現(xiàn)程序常駐內(nèi)存,各種變量和數(shù)據(jù)庫連接都能長久保存在內(nèi)存實現(xiàn)資源復(fù)用,性能可以得到很大的提升,php-cli開發(fā)比較復(fù)雜能但是能夠獲取更高的性能,對開發(fā)者的要求比較高需要比較高的開發(fā)水平,比較常用的模式是結(jié)合swoole組件編寫cli框架,各種變量能保存在跨進程的高性能共享內(nèi)存 Table,可以開發(fā)出支持熱啟動的php-cli可靠各類應(yīng)用系統(tǒng)。
php-fpm在PHP 5.3.3版本成為了官方正式組件(2010-07-22),它提供了穩(wěn)定可靠的進程管理服務(wù),進程不足時候可以智能擴充數(shù)量,閑置時候可以自動回收銷毀多余的進程,同時它對程序的容錯能力很強大運行非常穩(wěn)定,可以應(yīng)付企業(yè)級的開發(fā)需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互聯(lián)網(wǎng)協(xié)議下進行的用戶的輸入輸出,頁面級生命周期各種資源用完即釋放,不存在內(nèi)存泄漏的問題。php-fpm也提供有一些常駐內(nèi)存的技術(shù)支持,例如PHP 7.4引入的opcache.preload也能實現(xiàn)局部的PHP類和函數(shù)的常駐內(nèi)存,不過這個方法不夠靈活,和服務(wù)器配置捆綁的太死了。
php-cli因為能實現(xiàn)各類資源的常駐內(nèi)存,所以可以資源復(fù)用,更高效完成多進程編程和異步編程,可以開發(fā)出負載能力更高的應(yīng)用系統(tǒng)。但是相對php-fpm的簡單編程開發(fā),開發(fā)者要注意很多的事項和需要做很多附加的控制器開發(fā),否則就無法實現(xiàn)期待中的高性能。
四、PHP的優(yōu)點
1、第一個是簡單,PHP比其他任何的語言都要簡單,入門的話PHP真的是可以一周就入門。如果有學(xué)習(xí)C和Perl的很容易上手,并且跟ASP有部分類似。有成熟的開發(fā)工具,比如NuPHPed,或者Zend Studio等等,再Linux平臺下可以使用Eclipse等等。
2、PHP的功能非常強大,因為PHP官方的標準庫和擴展庫里提供了做服務(wù)器編程能用到的99%的東西。PHP的PECL擴展庫里你想要的任何的功能。
3、另外PHP有超過20年的歷史,生態(tài)圈是非常大的,在Github可以找到很多代碼。
4、有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似Asp.net的事件驅(qū)動的框架:Prado,支持類似Ruby On Rails的快速開發(fā)的框架:Cake等等,足夠滿足你的應(yīng)用需求。
5、PHP提供了許多參考資料,手冊和教程來輔助開發(fā),可以在遇到開發(fā)問題的時候,給開發(fā)人員提供幫助。 作為Web開發(fā)的新手,這些文檔有助于增長并簡化學(xué)習(xí)過程,循序漸進地掌握較為復(fù)雜的知識點。
6、目前已經(jīng)很多大型應(yīng)用都是使用PHP,比如淘寶網(wǎng)、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發(fā)語言,應(yīng)用十分廣泛。
五、PHP的缺點
1、性能比較差,因為是動態(tài)腳本,不適合做密集運算,如果同樣的 PHP 程序使用 C/C++ 來寫,PHP 版本要比它差。
2、函數(shù)命名規(guī)范差, PHP更講究實用性,一些函數(shù)的命名是很混亂的,所以每次你必須去翻PHP的手冊。
3、只支持web開發(fā),不方便做 .exe文件,不方便做桌面應(yīng)用程序. 不方便做手機程序。
4、不適合做爬蟲、自動運行腳本.科學(xué)運算項目,這語言基本構(gòu)架就不適合,雖然有很多方法實現(xiàn)。
六、常見PHP框架
PHP框架就是一種可以在項目開發(fā)過程中,提高開發(fā)效率,創(chuàng)建更為穩(wěn)定的程序,并減少開發(fā)者重復(fù)編寫代碼的基礎(chǔ)架構(gòu)。PHP框架是將不同Web系統(tǒng)開發(fā)過程中的共性、通用部分功能進行抽象,形成開發(fā)Web程序的基本架構(gòu)(換句話說,PHP開發(fā)框架封裝了底層的操作,把Web程序開發(fā)擺到了流水線上)。進行Web系統(tǒng)開發(fā)時,開發(fā)人員如果在PHP框架基礎(chǔ)上進行二次開發(fā),即可大大簡化開發(fā)過程,快速實現(xiàn)系統(tǒng)功能。PHP框架能促進Web系統(tǒng)的快速開發(fā)、節(jié)約時間、減少重復(fù)代碼量,并能幫助初學(xué)者創(chuàng)建規(guī)范、穩(wěn)定的Web系統(tǒng)。常見PHP框架有:
1、WordPress內(nèi)容管理系統(tǒng)(CMS)
功能強大、擴展性強,易于擴充功能;搭建的博客對SEO搜索引擎友好,收錄快排名靠前;網(wǎng)站上主題多,各色各樣應(yīng)有盡有;有強大的社區(qū)支持,有上千萬的開發(fā)者貢獻和審查。
2、ThinkPHP
ThinkPHP是一個由國人開發(fā)的快速、兼容而且簡單的輕量級PHP開發(fā)框架。誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP。ThinkPHP遵循Apache2開源協(xié)議發(fā)布,從Struts結(jié)構(gòu)移植過來并做了改進和完善,同時也借鑒了國外很多優(yōu)秀的框架和模式。使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的思想和TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式,封裝了對數(shù)據(jù)庫的常用操作,單一入口模式等。在模板引擎、緩存機制、認證機制和擴展性方面均有獨特的表現(xiàn)。
3、Yii
Yii是一個基于組件的高性能PHP框架,用于開發(fā)大型Web應(yīng)用。Yii采用嚴格的OOP編寫,并有著完善的庫引用以及全面的教程。Yii幾乎提供了如今Web2.0應(yīng)用開發(fā)所需要的一切功能,事實上,Yii也是最有效率的PHP框架之一。
4、Zend Framework
Zend Framework是由Zend公司開發(fā)的PHP框架,可用于開發(fā)Web程序和服務(wù)。Zend Framework采用MVC架構(gòu)模式來分離應(yīng)用程序中不同的部分,從而方便程序的開發(fā)和維護。
5、CakePHP
CakePHP是一個運用了諸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名設(shè)計模式的快速開發(fā)框架。該框架的主要目標是讓各種層次的PHP開發(fā)人員都能快速靈活地開發(fā)健壯的Web應(yīng)用。
6、Codelgniter
Codelgniter(CI)也是一個比較老牌的PHP框架。和ZF相反,它非常小巧,核心類庫僅有1MB左右。使用起來比較簡單,代碼框架遵循常見的MVC結(jié)構(gòu)。但是CI的類庫封裝得還不夠精細,某些框架層次感覺設(shè)計得過于煩瑣;另外CI的文檔做得不是很好,特別是缺乏良好的中文文檔,這大大阻礙了CI框架在國內(nèi)的普及。
七、PHP常見問題
1、PHP與html的關(guān)系
PHP就是對html的頁面進行管理的,對包含有PHP代碼的頁面中進解析,從而達到頁面動態(tài)添加與管理,比如我們的論壇,博客。
2、PHP與數(shù)據(jù)庫
PHP對html進行管理,那么我們要修改添加的內(nèi)容存在哪呢,于是就有了數(shù)據(jù)庫,PHP通過連接數(shù)據(jù)庫來對數(shù)據(jù)進行增加,修改,刪除,查詢。
3、PHP可以做什么用
PHP是一種開源腳本語言,利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域,比如PHP能開發(fā)微信公眾號、公司官網(wǎng)、商城系統(tǒng)、微信小程序、博客等。
總結(jié)
優(yōu)化猩SEO:PHP在WEB網(wǎng)站服務(wù)器端使用的編程語言所占份額約為80%,創(chuàng)建大量了Web應(yīng)用程序,Linux + Nginx + Mysql + PHP是PHP的經(jīng)典安裝部署方式,相關(guān)軟件均是開源免費的,PHP還擁有大量的開源框架,便于開發(fā)者進行應(yīng)用程序的搭建。
參考鏈接:
PHP(計算機編程語言)_百度百科
https://baike.baidu.com/item/PHP/9337
PHP框架_百度百科
https://baike.baidu.com/item/PHP%E6%A1%86%E6%9E%B6/5845631
php的缺點_深入解讀PHP語言的優(yōu)劣勢,看清代碼的本質(zhì)-CSDN博客
https://blog.csdn.net/weixin_32143729/article/details/115093217
淺談PHP優(yōu)缺點 - 簡書
https://www.jianshu.com/p/d5526e579eb6
修改于2023-09-10
想了解更多建站百科的內(nèi)容,請訪問:建站百科