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