淺談php的優缺點

1、優勢php

1. 跨平臺,性能優越,跟Linux/Unix結合別跟Windows結合性能強45%,而且和不少免費的平臺結合很是省錢,好比LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大能夠考慮換 PostgreSQL或者Oracle,支持N種數據庫。(N >= 10)mysql

2. 語法簡單,若是有學習C和Perl的很容易上手,而且跟ASP有部分相似。有成熟的開發工具,好比NuPHPed,或者Zend Studio等等,再Linux平臺下可使用Eclipse等等。linux

3. 目前主流技術都支持,好比WebService、Ajax、XML等等,足夠應用。web

4. 有比較完整的支持,好比使用ADODB或者PEAR::DB作數據庫抽象層,用Smarty或者smart template作模板層,若是是PHP 5.1的話,還可以使用PDO(PHP Data Object)來訪問數據庫。sql

5. 有不少成熟的框架,好比支持MVC的框架:phpMVC,支持相似ASP.net的事件驅動的框架:Prado,支持相似Ruby On Rails的快速開發的框架:Cake等等,足夠知足你的應用需求。數據庫

6. PHP 5已經有成熟的面向對象體系,可以適應基本的面向對象要求。適合開發大型項目。apache

7. 有成熟的社區來支持PHP的開發。編程

8. 目前已經不少大型應用都是使用PHP,好比淘寶網、Yahoo、16三、Sina等等大型門戶,不少選用PHP來做爲他們的開發語言,因此大型門戶都可以選用它,我想足夠可以你的使用了。網絡

9. 有不少開源的框架或開源的系統可使用,好比比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客 WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。多線程

10.使用成本低  (linux apache mysql php內核)

 

2.缺點,

1)函數命名不規範   駝峯法和下滑線,傳參位置不一 你知道的

2)單線程  ; PHP自己,一直以來php就是個單進程的程序;雖然php的pthreads擴展早就有了。可是它不夠穩定,運行運行着就會莫名其妙的本身掛掉;php的擴展都是C寫的,這也就意味着任何一個擴展出現線程競爭資源控制問題都能讓整個掛掉

3)核心異步網絡不支持(固然在linux只有同步非阻塞網絡模型)。卻少了這個使得很難開發一個可以承受大併發的網絡應用。傳統的網絡模型和io都阻塞的。這樣基本的編程的作法就是一個進程(或者線程)響應一個用戶連接請求。所以沒法完成像實時網遊那樣須要成千上萬網絡鏈接的任務。儘管php也有Libevent、eio擴展對此算是某種程度上面的彌補,可是感受都不是那麼完善

4)只支持web開發,不方便作 .exe文件,不方便作桌面應用程序. 不方便作手機程序.

5)不適合作爬蟲、自動運行腳本.科學運算項目,這語言基本構架就不適合,雖然有不少方法實現。

6)後期維護困難。後期提速空間侷限性較大。

7).PHP的解釋運行機制。這種運行機制使得每一個PHP頁面被解釋執行後,全部的相關資源都會被回收。也就是說,PHP在語言級別上沒有辦法讓某個對象常駐內存。在PHP中,全部的變量都是頁面級的,不管是全局變量,仍是類的靜態成員,都會在頁面執行完畢後被清空。以JSP爲例,在JSP中,Java Bean的scope有四種有效值:Page、Application、Session、Request,分別對應頁面、程序、會話、請求四種生存期。但在PHP中,只有Page一種生存期。
引用鳥哥[ Laruence]的話:
說PHP不支持多線程(90% of這些人不知道多線程模型和IO複用模型的不相伯仲), 爛. 說PHP不支持異步(90% of這些人, 根本不知道異步表明什麼), 爛. 說PHP是屌絲語言(99% of這些人是想找尋智商優越感), 爛. 往往我看到這種的論調, 我真的很無奈, 由於你根本沒辦法讓一個裝傻的人變聰明.
相關文章
相關標籤/搜索