- 相關(guān)推薦
php的優(yōu)缺點(diǎn)有哪些
PHP即“超文本預(yù)處理器”,是在服務(wù)器端執(zhí)行的腳本語(yǔ)言,尤其適用于Web開(kāi)發(fā)并可嵌入HTML中。下面是小編收集整理的php的優(yōu)缺點(diǎn)有哪些,歡迎大家借鑒與參考,希望對(duì)大家有所幫助。
php的優(yōu)缺點(diǎn)有哪些
應(yīng)用PHP有許多好處。當(dāng)然已知的不利之處在于PHP由于是開(kāi)放源碼項(xiàng)目,沒(méi)有什么商業(yè)支持,并且由此而帶來(lái)的執(zhí)行速度緩慢(直到PHP4之前)。但是PHP的郵件列表很是有用而且除非你正在運(yùn)行像Yahoo!或者Amazon.com這樣的極受歡迎的站點(diǎn),你不會(huì)感覺(jué)出PHP的速度與其他的有什么不同。最起碼我就沒(méi)有感覺(jué)出來(lái)!好了,讓我們來(lái)看看PHP有那些優(yōu)點(diǎn)和缺點(diǎn)?
php優(yōu)點(diǎn)
1. 跨平臺(tái),性能優(yōu)越,跟Linux/Unix結(jié)合別跟Windows結(jié)合性能強(qiáng)45%,并且和很多免費(fèi)的平臺(tái)結(jié)合非常省錢,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結(jié)合,或者數(shù)據(jù)應(yīng)用夠大可以考慮換 PostgreSQL或者Oracle,支持N種數(shù)據(jù)庫(kù)。(N >= 10)
2. 語(yǔ)法簡(jiǎn)單,如果有學(xué)習(xí)C和Perl的很容易上手,并且跟ASP有部分類似。有成熟的開(kāi)發(fā)工具,比如NuPHPed,或者Zend Studio等等,再Linux平臺(tái)下可以使用Eclipse等等。
3. 目前主流技術(shù)都支持,比如WebService、Ajax、XML等等,足夠應(yīng)用。
4. 有比較完整的支持,比如使用ADODB或者PEAR::DB做數(shù)據(jù)庫(kù)抽象層,用Smarty或者smart template做模板層,如果是PHP 5.1的話,還能夠使用PDO(PHP Data Object)來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.net的事件驅(qū)動(dòng)的框架:Prado,支持類似Ruby On Rails的快速開(kāi)發(fā)的框架:Cake等等,足夠滿足你的應(yīng)用需求。
6. PHP 5已經(jīng)有成熟的面向?qū)ο篌w系,能夠適應(yīng)基本的面向?qū)ο笠。適合開(kāi)發(fā)大型項(xiàng)目。
7. 有成熟的社區(qū)來(lái)支持PHP的開(kāi)發(fā)。
8. 目前已經(jīng)很多大型應(yīng)用都是使用PHP,比如淘寶網(wǎng)、Yahoo、163、Sina等等大型門戶,很多選用PHP來(lái)作為他們的開(kāi)發(fā)語(yǔ)言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。
9. 有很多開(kāi)源的框架或開(kāi)源的系統(tǒng)可以使用,比如比較知名的開(kāi)源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開(kāi)源論壇有Discuz!、Phpwind等,開(kāi)源博客 WordPress,開(kāi)源網(wǎng)店系統(tǒng)如Ecshop、ShopEx等,開(kāi)源的SNS系統(tǒng)如UCHome、ThinkSNS等。
缺點(diǎn)
1.對(duì)多線程支持不太好,大多數(shù)時(shí)候我們只能簡(jiǎn)單的模擬去實(shí)現(xiàn)的。
2.語(yǔ)法不太嚴(yán)謹(jǐn),比如變量不需要定義就可以使用,在c,Java,c++中變量是必須先定義以后才可以使用的。
3.也許有經(jīng)驗(yàn)的PHP程序員最感到痛苦的地方是PHP的解釋運(yùn)行機(jī)制。這種運(yùn)行機(jī)制使得每個(gè)PHP頁(yè)面被解釋執(zhí)行后,所有的相關(guān)資源都會(huì)被回收。也就是說(shuō),PHP在語(yǔ)言級(jí)別上沒(méi)有辦法讓某個(gè)對(duì)象常駐內(nèi)存。在PHP中,所有的變量都是頁(yè)面級(jí)的,無(wú)論是全局變量,還是類的靜態(tài)成員,都會(huì)在頁(yè)面執(zhí)行完畢后被清空。以JSP為例,在JSP中,Java Bean的scope有四種有效值:Page、Application、Session、Request,分別對(duì)應(yīng)頁(yè)面、程序、會(huì)話、請(qǐng)求四種生存期。但在PHP中,只有Page一種生存期。
php優(yōu)點(diǎn)和缺點(diǎn)
1.優(yōu)點(diǎn):開(kāi)源、免費(fèi)性、快捷性 [程序開(kāi)發(fā)快,運(yùn)行快,技術(shù)本身學(xué)習(xí)快]
插件豐富,網(wǎng)上的解決方案有很多,而且還有龐大的開(kāi)源社區(qū)可以提供幫助;
跨平臺(tái)性強(qiáng)、效率高、圖像處理;
面向?qū)ο螅?/p>
[在php4,php5 中,面向?qū)ο蠓矫娑加辛撕艽蟮母倪M(jìn),php完全可以用來(lái)開(kāi)發(fā)大型商業(yè)程序。]
PHP 性能很強(qiáng) 、配合簡(jiǎn)單、穩(wěn)定、容易部署;
總的來(lái)說(shuō),php能幫你低成本完成事情。
2.缺點(diǎn)
(1)函數(shù)命名不規(guī)范 駝峰法和下滑線,傳參位置不一 你知道的
(2)單線程 ; PHP本身,一直以來(lái)php就是個(gè)單進(jìn)程的程序;雖然php的pthreads擴(kuò)展早就有了。但是它不夠穩(wěn)定,運(yùn)行運(yùn)行著就會(huì)莫名其妙的自己掛掉;php的擴(kuò)展都是C寫(xiě)的,這也就意味著任何一個(gè)擴(kuò)展出現(xiàn)線程競(jìng)爭(zhēng)資源控制問(wèn)題都能讓整個(gè)掛掉;
(3)核心異步網(wǎng)絡(luò)不支持(當(dāng)然在linux只有同步非阻塞網(wǎng)絡(luò)模型)。卻少了這個(gè)使得很難開(kāi)發(fā)一個(gè)能夠承受大并發(fā)的網(wǎng)絡(luò)應(yīng)用。傳統(tǒng)的網(wǎng)絡(luò)模型和io都阻塞的。這樣基本的編程的做法就是一個(gè)進(jìn)程(或者線程)響應(yīng)一個(gè)用戶鏈接請(qǐng)求。因此無(wú)法完成像實(shí)時(shí)網(wǎng)游那樣需要成千上萬(wàn)網(wǎng)絡(luò)連接的任務(wù)。盡管php也有Libevent、eio擴(kuò)展對(duì)此算是某種程度上面的彌補(bǔ),但是感覺(jué)都不是那么完善;
(4)只支持web開(kāi)發(fā),不方便做 .exe文件,不方便做桌面應(yīng)用程序. 不方便做手機(jī)程序;
(5)不適合做爬蟲(chóng)、自動(dòng)運(yùn)行腳本.科學(xué)運(yùn)算項(xiàng)目,這語(yǔ)言基本構(gòu)架就不適合,雖然有很多方法實(shí)現(xiàn)。
(6)后期維護(hù)困難。后期提速空間局限性較大。
【php的優(yōu)缺點(diǎn)有哪些】相關(guān)文章:
php與js有哪些區(qū)別12-27
PHP常用函數(shù)有哪些04-05
PHP語(yǔ)言的特性有哪些06-04
PHP語(yǔ)言的用途有哪些06-13
PHP語(yǔ)言有哪些特性02-20
PHP內(nèi)置函數(shù)有哪些01-30
PHP處理密碼的方法有哪些05-14