韋永凱
摘要:PHP語言是當前網站開發最熱門的語言之一,越來越多的網站涌現在了互聯網上。但是由于安全意識的缺乏以及攻擊手段的層出不窮,PHP網站所暴露出來的安全性問題也越來越多,本文主要就PHP的優點與缺點分析進行敘述。
關鍵詞:PHP語言;優點;缺點
自20世紀90年代國內互聯網開始發展到現在,互聯網信息幾乎覆蓋了我們日常活動所有知識范疇,并逐漸成為我們生活、學習、工作中必不可少的一部分。據統計,從2003年開始,我國的網頁規模基本保持了翻番的增長速度,并且呈上升趨勢。PHP語言作為當今最熱門的網站程序開發語言,它具有成本低、速度快、可移植性好、內置豐富的函數庫等優點,因此被越來越多的企業應用于網站開發中。但隨著互聯網的不斷更新換代,PHP語言也出現了不少問題。
一、對PHP語言的定義理解
PHP(中文名:“超文本預處理器”)是在服務器端執行的腳本語言,與C語言類似,是常用的網站編程語言。PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。利于學習,使用廣泛,主要適用于Web開發領域。
二、PHP語言具有的主要特點
(一)開源性和免費性
由于PHP的解釋器的源代碼是公開的,所以安全系數較高的網站可以自己更改PHP的解釋程序。另外,PHP運行環境的使用也是免費的。
(二)快捷性
PHP是一種非常容易學習和使用的一門語言,它的語法特點類似于C語言,但又沒有C語言復雜的地址操作,而且又加入了面向對象的概念,再加上它具有簡潔的語法規則,使得它操作編輯非常簡單,實用性很強。
(三)數據庫連接的廣泛性
PHP可以與很多主流的數據庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數與這些數據庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。
(四)面向過程和面向對象并用
在PHP語言的使用中,可以分別使用面向過程和面向對象,而且可以將PHP面向過程和面向對象兩者一起混用,這是其它很多編程語言是做不到的。
三、PHP語言的優點
(一)流行,容易上手
PHP是目前最流行的編程語言,這毋庸置疑。它驅動全球超過2億多個網站,有全球超過81.7%的公共網站在服務器端采用PHP。PHP常用的數據結構都內置了,使用起來方便簡單,也一點都不復雜,表達能力相當靈活。
(二)開發職位很多
在服務器端的網站編程中PHP會更容易幫助你找到工作。京東、天貓、百度、新浪、微信等很多互聯網相關企業都在使用PHP開發框架,所以可以說市場對PHP的開發程序員的需求還是比較大的。
(三)仍然在不斷發展
PHP在不斷兼容著類似closures和命名空間等技術,同時兼顧性能和當下流行的框架。版本是7之后,一直在提供更高性能的應用。
四、PHP語言的缺點
(一)PHP的解釋運行機制
在PHP中,所有的變量都是頁面級的,無論是全局變量,還是類的靜態成員,都會在頁面執行完畢后被清空。以JSP為例,在JSP中,Java Bean的scope有四種有效值:Page、Application、Session、Request,分別對應頁面、程序、會話、請求四種生存期。但在PHP中,只有Page一種生存期。
(二)設計缺陷,缺少關注
PHP被稱作是不透明的語言,因為沒有堆棧追蹤,各種脆弱的輸入。沒有一個明確的設計哲學。早期的PHP受到Perl的影響,帶有out參數的標準庫又是有C語言引入,面向對象的部分又是從C++和Java學來的。
(三)對遞歸的不良支持
PHP并不擅長遞歸。一個PHP開發人員說道:“PHP 4.0(Zend)對密集數據使用了棧方式,而不是使用堆方式。也就是說它能容忍的遞歸函數的數量限制和其他語言比起來明顯少。”這是一個很不好的借口。每一個編程語言都應該提供良好的遞歸支持。
五、PHP語言的主要參考框架
(一)CodeIgniter的優點
1.配置簡單,全部的配置使用PHP腳本來配置,執行效率高;具有基本的路由功能,能夠進行一定程度的路由;具有初步的Layout功能,能夠制作一定程度的界面外觀;數據庫層封裝的不錯,具有基本的MVC功能。
2.快速簡潔,代碼不多,執行性能高,PHP框架簡單,容易上手,學習成本低,文檔詳細;自帶了很多簡單好用的library,框架適合小型應用。
(二)CodeIgniter缺點
1.把Model層簡單的理解為數據庫操作。
2.PHP框架略顯簡單,只能夠滿足小型應用,略微不太能夠滿足中型應用需要。
(三)CakePHP的優點
1.CakePHP是最類似于RoR的PHP框架,包括設計方式,數據庫操作的Active Record方式;設計層面很優雅,沒有自帶多余的 library,所有的功能都是純粹的框架,執行效率還不錯;數據庫層的 hasOne, hasMany 功能很強大,對于復雜業務處理比較合適;路由功能,配置功能還不錯;自動構建腳手架(scaffold)很強大;適合中型應用;基本實現過了MVC每一層;具有自動操作命令行腳本功能。
2.文檔比較全,在國內推廣的比較成功,大部分人都知道CakePHP,學習成本中等。
(四)CakePHP的缺點
1.CakePHP非常嚴重的問題是把Model理解為數據庫層操作,嚴重影響了除了數據庫之外的操作能力。
2.CakePHP的cache功能略顯薄弱,配置功能稍嫌弱;CakePHP不適合大型應用,只適合中型應用,小型應用來說略微的學習成本高了點。
六、總結
對于非常小的項目,它可以是一個十分符合人意的編程語言。但是對于較大的和更為復雜的項目,PHP就顯出它的薄弱了。所以,針對PHP暴露出的一系列缺點問題,我們應當不斷地摸索之后,然后找到某些問題的解決方案。一個開源的語言十分流行是一件好事。我希望所有的問題能有一天得到解決,然后我們就將擁有一個開源語言,它既開源,又好用。
參考文獻:
[1]劉中華,潘凱華,PHP 項目開發案例全程實錄(第 2 版)[M],清華大學出版社,2011
[2]陳惠貞,陳俊榮,PHP+MySQL 程序設計實例講座,清華大學出版社,2010
[3]劉劍云,馬晨陽,PHP+MySQL 網站開發應用從入門到精通,中國鐵道出版社,2010