當前位置:首頁 » 編程語言 » php缺陷

php缺陷

發布時間: 2024-01-01 20:31:29

① 北大青鳥設計培訓:php語言的優缺點有哪些

PHP已然走進了我們的生活,改變著我們的生活方式,也許你並沒有察覺到它的存在,但你一定感受到了,互聯網給我們生活帶來的便利是其他所無法比擬的,伺服器端的語言有很多,為什麼單獨拿php說事呢,因為php在後端開發領域佔了將近70%以上的市場份額,那麼准備進行php培訓學習的同學是不是了解一下PHP的優缺點會更好呢?優點一:狀態每一個網頁請求都是從一個完完全全的白板開始。
除了提供原始功能和生命支持的標準的全局變數,函數和類以外,它的命名空間和全局變數都是未初始化的。
通過從已知狀態開始每一個請求,我們可以得到一種本質上的故障隔離;如果請求t遇到了軟體的缺陷和失敗,這個缺陷不會直接干擾後續的請求t+1。
狀態駐留在程序堆以外的其他地方,當然它有可能有狀態地弄糟資料庫,或者緩存,或者文件信息系統。
但是PHP和所有允許存在的可能環境分擔了它的弱點。
隔離請求堆從另一個方面降低了大多數程序缺陷的成本。
優點二:處理並發的優勢一個獨立的網路請求運行在一個單獨的PHP線程上。
乍看,這似乎是一個愚蠢的限制。
但是一旦你的程序執行在一個網路伺服器的上下文中以後,我們就有了一個可用的自然並發:網路請求。
非同步地CURL到本地服務(甚至是網路服務)提供了一個開發並行性的無共享,拷入/拷出的方式。
在實踐中,這對錯誤來說比大多數其他通用語言提供的鎖共享狀態方法要更安全,更具有彈性。
優點三:事實上PHP程序在一個請求級別操作意味著程序員的工作流程是快速而有效的,並保持隨著應用的變化而快速變化。
許多開發者使用的語言聲稱是這樣,但是如果它們沒有為每一個請求重置狀態,主事件循環將和請求共享程序級狀態,它們幾乎總是需要一些啟動時間。
例如,對一個典型的Python應用服務,調試周期看起來像這樣想;編輯;重啟服務;發送一些測試請求。
航天橋電腦培訓http://www.kmbdqn.cn/認為即使重啟服務只花了幾秒,但這也會讓我們人類有限的大腦為了保持到微妙狀態浪費15到30秒的時間。

② 網站常用的幾種開發語言NET,PHP,JSP,各有什麼優點缺點

ASP,全稱為Active Server Pages
ASP是微軟(Microsoft)所開發的一種後台腳本語言,它的語法和Visual BASIC類似,可以像SSI(Server Side Include)那樣把後台腳本代碼內嵌到HTML頁面中。雖然ASP簡單易用,但是它自身存在著許多缺陷,最重要的就是安全性問題。目前在微軟的 .net 戰略中新推出的ASP.net 借鑒了java技術的優點,使用C Sharp (C#) 語言作為ASP.net的推薦語言,同時改進了以前ASP的安全性差等缺點。但是,使用ASP/ASP.net仍有一定的局限性,因為從某種角度來說它們只能在微軟的 Windows NT/2000/XP + IIS的伺服器平台上良好運行(雖然像ChilliSoft提供了在UNIX/Linux上運行ASP的解決方案,但是目前ASP在UNIX/Linux上的應用可以說幾乎為0)。所以平台的局限性和ASP自身的安全性限制了ASP的廣泛應用。

ASP在執行的時候,是由IIS調用程序引擎,解釋執行嵌在HTML中的ASP代碼,最終將結果和原來的HTML一同送往客戶端。

PHP,全稱為PHP: Hypertext Preprocessor
PHP 的全名非常有趣,它是一個巢狀的縮寫名稱——「PHP: Hypertext Preprocessor」,打開縮寫還是縮寫。PHP是一種HTML 內嵌式的語言 (就像上面講的ASP那樣)。而 PHP 獨特的語法混合了C,Java,Perl以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速地執行動態網頁。

PHP的源代碼完全公開,在 Open Source 意識抬頭的今天,它更是這方面的中流砥柱。不斷地有新的函數庫加入,以及不停地更新,使得 PHP 無論在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供豐富的函數,使得在程式設計方面有著更好的資源。目前PHP的最新版本為4.1.1 ,它可以在Win32以及UNIX/Linux等幾乎所有的平台上良好工作。PHP在4.0版後使用了全新的Zend引擎,其在最佳化之後的效率,比較傳統 CGI 或者 ASP 等技術有了更好的表現。

平台無關性是PHP的最大優點,但是在優點的背後,還是有一些小小的缺點的。如果在PHP中不使用ODBC,而用其自帶的資料庫函數(這樣的效率要比使用ODBC高)來連接資料庫的話, 使用不同的資料庫,PHP的函數名不能統一。這樣,使得程序的移植變得有些麻煩。不過,作為目前應用最為廣泛的一種後台語言,PHP的優點還是異常明顯的。

JSP,全稱為Java Server Pages / Servlet
JSP和Servlet要放在一起講,是因為它們都是Sun公司的J2EE(Java 2 platform Enterprise Edition)應用體系中的一部分。

Servlet的形式和前面講的CGI差不多,它是HTML代碼和後台程序分開的。它們的啟動原理也差不多,都是伺服器接到客戶端的請求後,進行應答。不同的是,CGI對每個客戶請求都打開一個進程(Process),而Servlet卻在響應第一個請求的時候被載入,一旦Servlet被載入,便處於已執行狀態。對於以後其他用戶的請求,它並不打開進程,而是打開一個線程(Thread),將結果發送給客戶。由於線程與線程之間可以通過生成自己的父線程(Parent Thread)來實現資源共享,這樣就減輕了伺服器的負擔,所以,Java Servlet可以用來做大規模的應用服務。

雖然在形式上JSP和ASP或PHP看上去很相似——都可以被內嵌在HTML代碼中。但是,它的執行方式和ASP或PHP完全不同。在JSP被執行的時候,JSP文件被JSP解釋器(JSP Parser)轉換成Servlet代碼,然後Servlet代碼被Java編譯器編譯成 .class 位元組文件,這樣就由生成的Servlet來對客戶端應答。所以,JSP可以看做是Servlet的腳本語言(Script Language)版。

由於JSP/Servlet都是基於Java的,所以它們也有Java語言的最大優點——平台無關性,也就是所謂的「一次編寫,隨處運行(WORA – Write Once, Run Anywhere)」。除了這個優點,JSP/Servlet的效率以及安全性也是相當驚人的。因此,JSP/Servlet雖然在國內目前的應用並不廣泛,但是其前途不可限量。

在調試JSP代碼時,如果程序出錯,JSP伺服器會返回出錯信息,並在瀏覽器中顯示。這時,由於JSP是先被轉換成Servlet後再運行的,所以,瀏覽器中所顯示的代碼出錯的行數並不是JSP源代碼的行數,而是指轉換後的Servlet程序代碼的行數。這給調試代碼帶來一定困難。所以,在排除錯誤時,可以採取分段排除的方法(在可能出錯的代碼前後輸出一些字元串,用字元串是否被輸出來確定代碼段從哪裡開始出錯),逐步縮小出錯代碼段的范圍,最終確定錯誤代碼的位置。

JSP和ASP相比較:

運行速度、運行開銷、運行平台、擴展性、安全性、函數支持、廠商支持、對XML的支持等等,ASP都不是JSP的對手。COM組件的復雜性實編程實現有一定的難度。而JAVABeans和JAVA的結合卻是天衣無縫的。

JSP和ASP.NET相比較:

1.相對C#,JSP的腳本語言JAVA也是面向對象的、分布式的、解釋的語言。

2.與C#相似JAVA同樣去掉了難以理解的指針等概念,取而代之的是類和對象。

3. JSP有一項全新的技術――Servlet(伺服器端程序)很好的節約了伺服器資源。

4.JAVABeans是針對ASP.NET的Server Control的技術。只要會JAVA, JavaBeans就很容易寫出。

5.再有就是JAVA的JDBC資料庫連接技術。

6.JSP對XML同樣有十分廣泛的支持。

1) 面向對象性:
ASP+將C#作為一種面向對象語言,在很多方面來看,C#將成為微軟的與Java相似的語言。
C#另一個有趣的地方是所有對象都自動變成為COM對象。如果C#能取得很大的市場份額,那麼它將給ASP+帶來類似於Java的功能,並且具備更快的性能,因為它可以和Windows環境緊密集成。
C# 是ASP+開發中一個最重要的功能,微軟會將C#發展成為Java的強勁對手。這也是他們.Net框架的一個重要組成部分。我認為C#是微軟在編程市場上擊敗對手的主要工具。我期待著微軟能在這個產品後面傾注全力,這樣,C#可以成為許多程序員的又一種選擇。C#產生的結果是將進一步加固微軟和Sun產品的戰線。這對用戶是有利的,他們可以選擇兩者之一來開發新的應用。

2) 資料庫連接:
ASP另一個亮點是它使用ADO對象,ODBC, OLE-DB和事務處理管理器。因此ASP Web資料庫應用開發特別簡單。ASP+發展了更多的功能,因為有了ADO+!ADO+帶來了更強大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落後,當新版本ASP+/ADO+出現後這樣的差別會更明顯。我個人希望SUN應盡快能花大力氣來追趕ASP+/ADO+的組合。

3) 大型站點應用:
ASP+將對大型站點(web farms)有更好的支持。事實上,微軟在這方面付出了巨大的努力。 ASP+可以讓你考慮到多伺服器(multiple servers)的場合,當你需要更強大的功能時,僅僅只需要增加一台伺服器。整個.Net框架已經充分地提供了這個方法。ASP+提供了外部會話狀態(external session state)來提供內置式web farm的支持。另外,由於請求的各組件相互間經過了充分的優化,所以速度很快。
於是ASP+現在可以在大型項目方面與JSP一樣具有等同的能力。 而ASP+還有價格方面的優勢,因為所有的組件將是伺服器操作系統的一部分。對於JSP,你需要購買昂貴的應用伺服器群來達到同樣的目的。

4) ASP+還提供更多的其它方面的新特性,例如:
*內置的對象緩存和頁面結果緩存。
*內置的XML支持,可用於XML數據集的簡單處理。
*伺服器控制提供了更充分的互動式控制。
ASP+確實對ASP進行了較大的發展。

③ php,jsp,asp三者優缺點...

php優點

1. 跨平台,性能優越,跟Linux/Unix結合別跟Windows結合性能強45%,並且和很多免費的平台結合非常省錢,比如LAMP(Linux
/Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大可以考慮換
PostgreSQL或者Oracle,支持N種資料庫。(N >= 10)

2. 語法簡單,如果有學習C和Perl的很容易上手,並且跟ASP有部分類似。有成熟的開發工具,比如NuPHPed,或者Zend
Studio等等,再Linux平台下可以使用Eclipse等等。

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

4. 有比較完整的支持,比如使用ADODB或者PEAR::DB做資料庫抽象層,用Smarty或者smart template做模板層,如果是PHP
5.1的話,還能夠使用PDO(PHP Data Object)來訪問資料庫。

5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.net的事件驅動的框架:Prado,支持類似Ruby On
Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。

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

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

8.
目前已經很多大型應用都是使用PHP,比如淘寶網、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發語言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。

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

php缺點

1.對多線程支持不太好,大多數時候我們只能簡單的模擬去實現的。

2.語法不太嚴謹,比如變數不需要定義就可以使用,在c,java,c++中變數是必須先定義以後才可以使用的。

3.也許有經驗的PHP程序員最感到痛苦的地方是PHP的解釋運行機制。這種運行機制使得每個PHP頁面被解釋執行後,所有的相關資源都會被回收。也就是說,PHP在語言級別上沒有辦法讓某個對象常駐內存。在PHP中,所有的變數都是頁面級的,無論是全局變數,還是類的靜態成員,都會在頁面執行完畢後被清空。以JSP為例,在JSP中,Java
Bean的scope有四種有效值:Page、Application、Session、Request,分別對應頁面、程序、會話、請求四種生存期。但在PHP中,只有Page一種生存期。

JSP的優勢

(1)一次編寫,到處運行。在這一點上Java比PHP更出色,除了系統之外,代碼不用做任何更改。

(2)系統的多平台支持。基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP/PHP的局限性是顯而易見的。

(3)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多台伺服器進行集群和負載均衡,到多台Application進行事務處理,消息處理,一台伺服器到無數台伺服器,Java顯示了一個巨大的生命力。

(4)多樣化和功能強大的開發工具支持。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的運行於多種平台之下。

JSP的劣勢

(1) 與ASP一樣,Java的一些優勢正是它致命的問題所在。正是由於為了跨平台的功能,為了極度的伸縮能力,所以極大的增加了產品的復雜性。

(2)
Java的運行速度是用class常駐內存來完成的,所以它在一些情況下所使用的內存比起用戶數量來說確實是「最低性能價格比」了。從另一方面,它還需要硬碟空間來儲存一系列的。java文件和。class文件,以及對應的版本文件。

ASP的特點:

1、任何開發工具皆可發展ASP

只要使用一般的文書編輯程序,如Windows記事本,就可以編輯。當然,其他網頁發展工具,例如,FrontPage Express、
FrontPage等也都可以;不過還是建議你用記事本來寫,既省錢又方便,若是使用那些所見即所得的網頁編輯來寫ASP,可能會發生一些意想不到的離奇狀態。

2、通吃各家瀏覽器

由於ASP程序是在網路伺服器端中執行,執行結果所產生的HTML文件適用於不同的瀏覽器。

3、語言相容性高

ASP與所有的ActiveX Script語言都相容,除了可結合HTML,VBScript、Java Script、Active
X伺服器組件來設計外,並可經由「plug-In(外掛組件模組)的方式,使用其他廠商(Third Party)所提供的語言。

4、隱密安全性高

如果我們在瀏覽器中直接查看網頁的原始代碼,就只能看到HTML文件,原始的ASP程序代碼是看不到的!這是因為ASP程序先於網站服務(Web
Server)端執行後,將結果轉換成標准HTML文件,再傳送到客戶端(Client)的瀏覽器上,因此,我們所辛苦撰寫的ASP程序並不會輕易地被看見進而被盜用。

5、易於操控資料庫

ASP可以輕易地通過ODBC(Open Database
Connectivity)驅動程序連接各種不同的資料庫,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可將「文本文件」或是」Excel」
文件當成資料庫用。

6、面向對象學習容易

ASP具備有面向對象(Object-Oriented)功能,學習容易,ASP提供了五種方便能力強大的內建對象:Request、Response、Sever、Application以及Session,同時,若使用ASP內建的「Application」對象或」Session」對象所撰寫出來的ASP程序可以在多個網頁之間暫時保存必要的信息。

④ php有什麼缺陷 為什麼要用swoole

因為Swoole開源項目就是為了彌補PHP在這些方面的缺陷誕生的。與WordPress這些產品不同,swoole實際上是一個網路通信和非同步io的引擎,一個基礎庫。
swoole框架相比apache/fpm,主要節省PHP框架和全局對象每次請求創建銷毀帶來的性能損耗。
swoole框架給程序員提供了最大的空間,與http請求無關的全局對象只需要構造一次。程序中還可以對某些對象和數據進行緩存控制,希望能幫到你,我還要抓緊時間自己在後盾人平台自己學習呢,一起加油吧٩(๑òωó๑)۶

熱點內容
如何知道老婆微信和密碼 發布:2024-11-30 06:46:16 瀏覽:848
java計劃 發布:2024-11-30 06:44:04 瀏覽:942
linux查看ftp日誌 發布:2024-11-30 06:33:19 瀏覽:475
設置截屏存儲 發布:2024-11-30 06:29:00 瀏覽:394
jpg演算法 發布:2024-11-30 06:28:55 瀏覽:195
怎麼刪除u盤中的文件夾 發布:2024-11-30 06:28:20 瀏覽:216
iphone文件夾打開 發布:2024-11-30 06:13:43 瀏覽:298
如何配置Javaweb環境 發布:2024-11-30 06:09:24 瀏覽:121
怎麼使用Androidapi 發布:2024-11-30 06:08:43 瀏覽:61
包鋼伺服器地址 發布:2024-11-30 06:06:27 瀏覽:563