一心向道
$num = 1;$num += 1; #在這里 , 這個(gè)表達(dá)式 等效于 : $num = $num + 1;#同理(注意 += 之間不能有空格;下同)# $num -= 1 ; 等效于 $num = $num - 1;# $num /= 1 ; 等效于 $num = $num / 1;# $num *= 1 ; 等效于 $num = $num * 1;# $num %= 1 ; 等效于 $num = $num % 1;# $str .= 'another string' ; 等效于 $str = $str . 'another string';
隨時(shí)候命
PHP中&&與&的區(qū)別:
1、運(yùn)算符性質(zhì)的區(qū)別
&&在PHP中是一個(gè)邏輯操作符,也叫條件操作符。
&是邏輯語(yǔ)言,邏輯上表示兩者屬于缺一不可的關(guān)系,還可以表示一個(gè)人和另外一個(gè)人之意,與and同義。如A&B,表示A與B,A和B,A×B。
2、作用上的區(qū)別
&&就是判斷兩個(gè)表達(dá)式的真假性,只有兩個(gè)表達(dá)式同時(shí)為真才為真,有一個(gè)為假則為假,具有短路性質(zhì)。
&是將兩個(gè)二進(jìn)制的數(shù)逐位相與,結(jié)果是相與之后的結(jié)果。
3、用途上的區(qū)別
&&:x&&y——功能描述: “條件與”:x和y均為true,取值是true,否則取值是false。&&需要兩個(gè)操作數(shù)的值都是true時(shí),才取值true,但是兩個(gè)操作符還是有區(qū)別的:使用方法是int&& rx=x。
&:是一個(gè)位運(yùn)算符。參加運(yùn)算的兩個(gè)數(shù)的二進(jìn)制形式,每一個(gè)二進(jìn)制位進(jìn)行”與“運(yùn)算,最后的結(jié)果二進(jìn)制作為結(jié)果,例如:3 & 5=1,因?yàn)?和5的二進(jìn)制分別是0011、0101,兩個(gè)進(jìn)行與運(yùn)算的結(jié)果是0001。
參考資料來(lái)源:百度百科 &&
參考資料來(lái)源:百度百科 &
蘇雙
首先要了解,當(dāng)你要訪問一個(gè)網(wǎng)站的時(shí)候,你通過瀏覽器向某個(gè)網(wǎng)址發(fā)出請(qǐng)求,然后那個(gè)網(wǎng)址對(duì)應(yīng)的服務(wù)器接收到請(qǐng)求并執(zhí)行相應(yīng)處理,然后返回一個(gè)響應(yīng)給你的瀏覽器。如果這個(gè)響應(yīng)內(nèi)容是一份HTML文檔,那么瀏覽器就會(huì)解析渲染這份HTML,展示出來(lái)給你看,就是你看到的網(wǎng)頁(yè)。那么服務(wù)器怎么組織這份HTML響應(yīng)呢?就可以通過各種程序來(lái)計(jì)算、“拼湊”,比如Java、.NET、php等等。所以php是運(yùn)行在服務(wù)器上的腳本。雖然同樣是腳本,過去javascript流行起來(lái)的時(shí)候,最大的用法卻是讓它作為HTML文檔中的一部分,由服務(wù)器返回給客戶端瀏覽器,然后javascript腳本在瀏覽器中被瀏覽器執(zhí)行,進(jìn)行各種處理(例如校驗(yàn)表單輸入、動(dòng)態(tài)改變頁(yè)面DOM元素或樣式、發(fā)出AJAX請(qǐng)求等等)。所以javascript大部分時(shí)候是運(yùn)行在瀏覽器上的。這種情況下,對(duì)于服務(wù)器來(lái)說(shuō),它不“認(rèn)識(shí)”這是javascript腳本,只當(dāng)作普通文本字符串內(nèi)容(是響應(yīng)HTML文檔內(nèi)容的一部分)而已。上面之所以沒有說(shuō)javascript是絕對(duì)運(yùn)行在瀏覽器端的原因,是因?yàn)槟壳爸饾u流行的node.js,是一項(xiàng)將javascript腳本運(yùn)行在服務(wù)器端,完成和傳統(tǒng)Java、php等服務(wù)器端web server相同功能的技術(shù)。其實(shí),javascript腳本剛被發(fā)明出來(lái)的時(shí)候,是被設(shè)計(jì)用來(lái)做服務(wù)器端腳本的。估計(jì)連創(chuàng)始者也沒想到,javascript會(huì)“繞”了這么一個(gè)大圈,但是處處大放光彩。
天癡上人
這和linux系統(tǒng)是一樣的, . 表示當(dāng)前目錄.. 表示當(dāng)前目錄的上一級(jí)目錄。./表示當(dāng)前目錄下的某個(gè)文件或文件夾,視后面跟著的名字而定../表示當(dāng)前目錄上一級(jí)目錄的文件或文件夾,視后面跟著的名字而定。例如:文件夾 a下面有 文件夾b c 和文件 d。文件夾b下面有e.php 和文件f。則e中的 . 表示 文件夾b./f 表示b下面的文件f。.. 表示a文件夾。../d 表示a文件夾下的d文件。
.. 表示a文件夾。../d 表示a文件夾下的d文件。 這兩個(gè)都是指在e中時(shí)的嗎?
是
譙周
HTML的網(wǎng)站是第一代的網(wǎng)站,只是靜態(tài)網(wǎng)站,現(xiàn)在已經(jīng)沒有人會(huì)拿來(lái)用了,只有在做前臺(tái)的時(shí)候會(huì)用到HTML代碼,其代碼也簡(jiǎn)單,直接用記事本編寫就可以,沒什么好說(shuō)的。PHP呢 PHP的優(yōu)點(diǎn) 應(yīng)用PHP有許多好處。當(dāng)然已知的不利之處在于PHP由于是開放源碼項(xiàng)目,沒有什么商業(yè)支持,并且由此而帶來(lái)的執(zhí)行速度緩慢(直到PHP4之前)。但是PHP的郵件列表很是有用而且除非你正在運(yùn)行像Yahoo!或者Amazon.com這樣的極受歡迎的站點(diǎn),你不會(huì)感覺出PHP的速度與其他的有什么不同。最起碼我就沒有感覺出來(lái)!好了,讓我們來(lái)看看PHP有那些優(yōu)點(diǎn): - 學(xué)習(xí)過程 與Java和Perl不同,你不必把頭埋進(jìn)100多頁(yè)的文檔中努力學(xué)習(xí)才可以寫出一個(gè)象樣的程序。只要了解一些基本的語(yǔ)法和語(yǔ)言特色,你就可以開始你的PHP編碼之旅了。之后你在編碼過程中如果遇到了什么麻煩,還可以再去翻閱相關(guān)文檔。 PHP的語(yǔ)法與C,Perl,ASP或者JSP。對(duì)于那些對(duì)上述之一的語(yǔ)言較熟悉的人來(lái)說(shuō),PHP太簡(jiǎn)單了。相反的,如果你對(duì)PHP了解較多,那么你對(duì)于其他幾種語(yǔ)言的學(xué)習(xí)都很簡(jiǎn)單了。 你只需要30分鐘就可以將PHP的核心語(yǔ)言特點(diǎn)全部掌握,你可能已經(jīng)非常了解HTML,甚至你已經(jīng)知道怎樣用編輯設(shè)計(jì)軟件或者手工來(lái)制作好看的WEB站點(diǎn)。由于PHP代碼能夠無(wú)障礙的添加進(jìn)你的站點(diǎn),在你設(shè)計(jì)和維護(hù)站點(diǎn)的同時(shí),你可以很輕松的加入PHP使得你的站點(diǎn)更加具有動(dòng)態(tài)特性。 - 數(shù)據(jù)庫(kù)連接 PHP可以編譯成具有與許多數(shù)據(jù)庫(kù)相連接的函數(shù)。PHP與MySQL是現(xiàn)在絕佳的組合。你還可以自己編寫外圍的函數(shù)取間接存取數(shù)據(jù)庫(kù)。通過這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫(kù)
王美人
.連接字符串.= 加等的意思例如 $i = "hello";$i=$i." world" 和 $i.=" world"相等
張牽牛
PHP可以在所有主要的操作平臺(tái)(UNIX,Windows,甚至是大型機(jī))上運(yùn)行,而且生來(lái)就支持各種62616964757a686964616fe58685e5aeb931333337393631流行的數(shù)據(jù)庫(kù)。這決定它是一種進(jìn)行Web開發(fā)的非常理想的選擇:曾有運(yùn)用PHP技術(shù)的網(wǎng)上商店稱,他們只需雇傭業(yè)余的程序員,幾天內(nèi)就能夠開發(fā)出可重用的代碼。那些熟悉諸如C,C++或Java等語(yǔ)言的程序員們,也總是發(fā)現(xiàn)他們能夠在幾個(gè)小時(shí)之內(nèi)就能夠進(jìn)行PHP編程。 ,可想而知,轉(zhuǎn)行去php非常簡(jiǎn)單 “PHP是構(gòu)建在Web開發(fā)人員現(xiàn)實(shí)需求之上的....不同于其它笨重的,高負(fù)荷的方法,PHP非常輕便,是為Web開發(fā)度身定做的。它可以比其它同類技術(shù)更快,更容易的解決復(fù)雜的問題?!?Java作為一種新的編程語(yǔ)言,最初用于運(yùn)行嵌在瀏覽器中的客戶端應(yīng)用程序。在過去短短幾年中,“applet”所暴露的問題迫使SUN和其它Java開發(fā)人員為該語(yǔ)言尋找新的出路。其中最為突出的就是服務(wù)器端編程,它允許Web站點(diǎn)連接數(shù)據(jù)庫(kù)并產(chǎn)生其它服務(wù)器端的應(yīng)用程序,即“servlets”。SUN最終推出了Java Server Pages(JSP)作為編寫servlets的手段。與PHP一樣,JSP在不同平臺(tái)間也具有高可移植性(盡管PHP支持任何32位以及32位以上的平臺(tái),而JSP只能在安裝了Java虛擬機(jī)的平臺(tái)上運(yùn)行)。 然后,一個(gè)沒有編程背景的新手會(huì)發(fā)現(xiàn),使用servlets編程是一件極為困難的事,原因在于該語(yǔ)言的復(fù)雜性以及JSP系統(tǒng)復(fù)雜的設(shè)計(jì)方式。 JSP的性能也存在許多待改進(jìn)的地方:ZDnet的在線刊物eWeek最近的一項(xiàng)調(diào)查發(fā)現(xiàn),PHP的運(yùn)行速度差不多是JSP的3.7倍??梢哉f(shuō),JSP是Web環(huán)境中非常差的一種解決方案,這是因?yàn)樗棵腌娭荒芴幚砗苌俚氖聞?wù),而且響應(yīng)速度相當(dāng)?shù)穆?ZDnet的eWeek雜志還提到: “JSP是一項(xiàng)相對(duì)較新的技術(shù),從開發(fā)工具、資源、人才方面來(lái)看,還未具有完全的市場(chǎng)成熟度。”......由于JSP是基于Java的,而Java由是一種強(qiáng)類型的語(yǔ)言,所以我們不得不聲明變量的類型,并在需要的地方手工轉(zhuǎn)換類型。這使得JSP成為業(yè)余程序員最難于學(xué)習(xí)的一種腳本語(yǔ)言。 PHP與Java協(xié)同工作 JSP僅僅是一種能夠訪問Java對(duì)象的語(yǔ)言罷了,認(rèn)識(shí)到這一點(diǎn)很重要。而PHP也可以整合Java,這意味著,PHP可以象JSP一樣,成為一種能夠調(diào)用Java邏輯的腳本語(yǔ)言。
焦伯
現(xiàn)在市場(chǎng)上的oa基本上可歸結(jié)為兩大陣營(yíng),即php陣營(yíng)和java陣營(yíng)。但對(duì)接觸oa不久的用戶來(lái)說(shuō),看到的往往只是它們的表相,只是明顯的價(jià)格差異,卻很難看出它們之間的實(shí)際差異。其實(shí), PHP + MYSQL 不值錢不僅僅局限于oa軟件,而是整體上PHP + MYSQL開發(fā)的軟件都不如java開發(fā)的軟件值錢。為什么PHP + MYSQL 的OA為什么不值錢呢?首先得明白php和java之間的差異才行。 1、系統(tǒng)的技術(shù)架構(gòu)比較 分層是將系統(tǒng)進(jìn)行有效組織的方式,分而治之的思想是計(jì)算機(jī)領(lǐng)域中非常重要的思想。在好的分層思想引導(dǎo)下,便能實(shí)現(xiàn)“高內(nèi)聚、低耦合”,也能將具體的問題割裂開來(lái),易于控制、易于延展,更易于分配資源。PHP只能實(shí)現(xiàn)簡(jiǎn)單的分布式兩層或三層的架構(gòu),而JAVA在這方面就十分強(qiáng)大,可以實(shí)現(xiàn)多層的網(wǎng)絡(luò)架構(gòu)。運(yùn)用MVC的設(shè)計(jì)模式,可使oa系統(tǒng)具有更加高效、合理的系統(tǒng)架構(gòu)。技術(shù)架構(gòu)的落后,使運(yùn)用php編寫的oa軟件系統(tǒng)先天不足,而后天又無(wú)法補(bǔ)足其先天上的劣勢(shì)。使得系統(tǒng)在可拓展性、需求應(yīng)變性上與JAVA編寫的oa軟件系統(tǒng)的差距越來(lái)越大。架構(gòu)的差距,注定了php做的oa充其量是個(gè)小家碧玉,始終無(wú)法和java這種大家閨秀同臺(tái)競(jìng)技。 2、數(shù)據(jù)庫(kù)訪問比較 PHP可編譯成具有與許多數(shù)據(jù)庫(kù)相連接的函數(shù)。將自己編寫外圍的函數(shù)去間接存取數(shù)據(jù)庫(kù)。通過這樣的途徑當(dāng)更換使用的數(shù)據(jù)庫(kù)時(shí),可以輕松地修改編碼以適應(yīng)這樣的變化。但PHP提供的數(shù)據(jù)庫(kù)接口支持彼此不統(tǒng)一,比如對(duì)Oracle, MySQL,Sybase的接口,彼此都不一樣。由于PHP對(duì)于不同的數(shù)據(jù)庫(kù)采用不同的數(shù)據(jù)庫(kù)訪問接口,所以數(shù)據(jù)庫(kù)訪問代碼的通用性不強(qiáng)。 而Java通過JDBC來(lái)訪問數(shù)據(jù)庫(kù),通過不同的數(shù)據(jù)庫(kù)廠商提供的數(shù)據(jù)庫(kù)驅(qū)動(dòng)方便地訪問數(shù)據(jù)庫(kù),訪問數(shù)據(jù)庫(kù)的接口比較統(tǒng)一。如果同樣是將開發(fā)的web應(yīng)用從MYSQL數(shù)據(jù)數(shù)轉(zhuǎn)到ORACLE數(shù)據(jù),PHP需要做大量的修改工作,而且比較繁瑣。但JAVA開發(fā)的便只需要很少的更改便能實(shí)現(xiàn)。 數(shù)據(jù)庫(kù)訪問方式的差異,奠定了php開發(fā)出的oa和java開發(fā)出來(lái)的oa是馬車和火車的差距,前者只能亦步亦趨而且額度有限,后者卻是工業(yè)化的結(jié)晶,不僅能夠包容萬(wàn)物而且速度上穩(wěn)步提升。 3、安全性對(duì)比 在同是開源和跨平臺(tái)的java面前,php丟掉了很多的優(yōu)勢(shì)。在代碼的安全性上尤為突出。php的開發(fā)程序在別人拿到代碼后,可以很容易的進(jìn)行修改。而java開發(fā)的程序由于無(wú)法看到完整的源代碼,只能看到一些編譯好的類文件,所以安全性較高。加之系統(tǒng)架構(gòu)的優(yōu)勢(shì),在安全性上php和java是相去甚遠(yuǎn)。 如果非要將php和java在安全性上做個(gè)比較的話,同一個(gè)小偷光顧php那是隨便拿來(lái)隨便改,想拿什么拿什么,拿的高興還能大筆一輝某某到此一游。而光顧java的時(shí)候,便會(huì)發(fā)現(xiàn)警察把守,內(nèi)設(shè)自動(dòng)報(bào)警裝置,即便突破重重阻擾后進(jìn)入居室。那值錢的東西都放在加密后的保險(xiǎn)柜中,只能望洋興嘆、鎩羽而歸。 4、前瞻性和拓展性 從整體來(lái)說(shuō),php適用于中小型系統(tǒng),而java適用于大型系統(tǒng)。Php能夠?qū)我坏氖录龊?,但卻不適合完成集成度較高的多項(xiàng)并發(fā)事件。為什么說(shuō)php適合中小型系統(tǒng)而不適合做大系統(tǒng)呢? 首先, php缺乏多層結(jié)構(gòu)支持。而對(duì)于大型的系統(tǒng)負(fù)荷站點(diǎn),只能采用分布計(jì)算。將數(shù)據(jù)庫(kù)、應(yīng)用邏輯層和表示邏輯層彼此分開,并將同層的根據(jù)流量分開,組成二維數(shù)組。而php恰恰缺乏這種支持。 其次,PHP提供的數(shù)據(jù)庫(kù)接口不統(tǒng)一,要將多個(gè)不同的數(shù)據(jù)庫(kù)數(shù)據(jù)統(tǒng)一需要花費(fèi)很大的力氣。而JAVA則沒有這種缺陷,可通過SUN Java的Java Class和EJB獲得規(guī)模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結(jié)構(gòu)支持。如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere,是通過CGI來(lái)提供支持的。 如果將Php比作將才,具備獨(dú)擋一方的能力。那么java便是帥才,具有較好的前瞻性和拓展性,整體布局和協(xié)同能力強(qiáng)。能夠指揮千軍萬(wàn)馬,最后逐鹿中原。 5、開發(fā)成本比較 既然php在諸多方面都不如java優(yōu)異,那么php開發(fā)出的oa產(chǎn)品何以與java產(chǎn)品競(jìng)爭(zhēng)呢?在于Php陣營(yíng)普遍走的是低端路線,而java陣營(yíng)走的是中高端路線。兩者之間交*的區(qū)域較小。 軟件價(jià)格的高低很大程度上和自身成本和功能相掛鉤。php的入門門檻較低,絕大多數(shù)學(xué)過c的程序員都很容易轉(zhuǎn)型為php程序員,這使得php程序員的泛濫成災(zāi)的同時(shí),低成本的php軟件產(chǎn)品也層出不窮。以PHP最經(jīng)典的組合PHP + MySQL + Apache為例,由于所有軟件都是開源免費(fèi)的,所以投入并不高。 而java開發(fā)需要特定的環(huán)境,成長(zhǎng)為一個(gè)合格的java程序員需要一定的時(shí)間,java程序員的成本也是php成本的幾倍。Java的web應(yīng)用服務(wù)器免費(fèi)的有Tomcat、JBoss等,而要想具有很好的商業(yè)化服務(wù)便必須選用Web Sphere和 Web logic。這其中投入的成本無(wú)形中便超是php成本的N倍。所以,java開發(fā)oa的成本要遠(yuǎn)遠(yuǎn)高于php開發(fā)出來(lái)的同類軟件產(chǎn)品。但也正由于java開發(fā)的成本較高,很難實(shí)現(xiàn)抄襲和短期內(nèi)逾越的可能,也使得java用開發(fā)出的產(chǎn)品門檻更高。 不怕不識(shí)貨,就怕貨比貨。Php開發(fā)出來(lái)的產(chǎn)品也能用,但是和java開出的同類產(chǎn)品是沒法比較的。正因?yàn)閜hp開發(fā)的產(chǎn)品整體性能和java開發(fā)的相去甚遠(yuǎn),所以php運(yùn)用低成本的低價(jià)優(yōu)勢(shì)和同類的java產(chǎn)品抗?fàn)?,以價(jià)格落差來(lái)平衡購(gòu)買者的心態(tài)。所以,PHP + MYSQL 的OA不值錢也就不足為怪了 第二種比較PHP和JSP這兩個(gè)web開發(fā)技術(shù),在目前的情況是其實(shí)是比較PHP和Java的Web開發(fā)。以下是我就幾個(gè)主要方面進(jìn)行的比較: 一、 語(yǔ)言比較 Php是解釋執(zhí)行的服務(wù)器腳本語(yǔ)言,首先php有簡(jiǎn)單容易上手的特點(diǎn)。語(yǔ)法和c語(yǔ)言比較象,所以學(xué)過c語(yǔ)言的程序員可以很快的熟悉php的開發(fā)。而java需要先學(xué)好java的語(yǔ)法和熟悉一些核心的類庫(kù),懂得面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。所以java不如php好學(xué)。 Java首先要編譯成字節(jié)碼.class文件,然后在java虛擬機(jī)上解釋執(zhí)行。Java的web開發(fā)首先最容易想到的就是JSP(現(xiàn)在已經(jīng)到JSP2.0),原來(lái)的java的web開發(fā)都是用servlet來(lái)實(shí)現(xiàn)的,用servlet來(lái)開發(fā)需要程序員在java的源文件中嵌入大量的html代碼。所以后來(lái)就出現(xiàn)了JSP,JSP可以方便的嵌入到html文件當(dāng)中,其實(shí)jsp文件在服務(wù)器上執(zhí)行的時(shí)候首先會(huì)被應(yīng)用服務(wù)器轉(zhuǎn)換成servlet,然后再編譯執(zhí)行。Jsp可以通過servlet和JavaBean的支持產(chǎn)生強(qiáng)大的功能。JavaBean 是一種可復(fù)用的、跨平臺(tái)的軟件組件。使用javabean可以方便的實(shí)現(xiàn)java代碼和html的分離,能夠增強(qiáng)系統(tǒng)的功能和軟件的復(fù)用性。 Java的web開發(fā)屬于SUN公司定義的J2EE其中的規(guī)范。而且在J2EE中包括了java的web開發(fā)的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特別適合于做大型的企業(yè)級(jí)的應(yīng)用。 二、 數(shù)據(jù)庫(kù)訪問比較 Java通過JDBC來(lái)訪問數(shù)據(jù)庫(kù),通過不同的數(shù)據(jù)庫(kù)廠商提供的數(shù)據(jù)庫(kù)驅(qū)動(dòng)方便地訪問數(shù)據(jù)庫(kù)。訪問數(shù)據(jù)庫(kù)的接口比較統(tǒng)一。 PHP對(duì)于不同的數(shù)據(jù)庫(kù)采用不同的數(shù)據(jù)庫(kù)訪問接口,所以數(shù)據(jù)庫(kù)訪問代碼的通用性不強(qiáng)。例如:用Java開發(fā)的web應(yīng)用從MySQL數(shù)據(jù)庫(kù)轉(zhuǎn)到Oracle數(shù)據(jù)庫(kù)只需要做很少的修改。而PHP則需要做大量的修改工作。 三、 系統(tǒng)設(shè)計(jì)架構(gòu)比較 采用Java的web開發(fā)技術(shù),需要使用的是面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)方法,而PHP還是采用面向過程的開發(fā)方法。所以用Java進(jìn)行開發(fā)前期需要做大量的系統(tǒng)分析和設(shè)計(jì)的工作。 四、 跨平臺(tái)性 Java和PHP都有很好的跨平臺(tái)的特性。幾乎都可以在不作任何修改的情況下運(yùn)行在Linux或者Windows等不同的操作系統(tǒng)上。 五、 開發(fā)成本比較 PHP最經(jīng)典的組合就是:PHP + MySQL + Apache。非常適合開發(fā)中小型的web應(yīng)用,開發(fā)的速度比較快。而且所有的軟件都是開源免費(fèi)的,可以減少投入。 Java的web應(yīng)用服務(wù)器有免費(fèi)Tomcat、JBoss等,如果需要更好的商業(yè)化的服務(wù)有:Web Sphere和 Web logic。 六、 分布式多層架構(gòu)比較 PHP只能實(shí)現(xiàn)簡(jiǎn)單的分布式兩層或三層的架構(gòu),而JAVA在這方面就比較強(qiáng)大,可以實(shí)現(xiàn)多層的網(wǎng)絡(luò)架構(gòu)。數(shù)據(jù)庫(kù)層(持久化層)、應(yīng)用(業(yè)務(wù))邏輯層、表示邏輯層彼此分開,而且現(xiàn)在不同的層都已經(jīng)有一些成熟的開發(fā)框架的支持。例如Struts就是利用java的web開發(fā)技術(shù)實(shí)現(xiàn)了MVC的設(shè)計(jì)模式,而在業(yè)務(wù)邏輯層也有Spring框架,數(shù)據(jù)庫(kù)持久化層有Hibernate等框架。這些框架可以方便開發(fā)者高效、合理、科學(xué)得架構(gòu)多層的商業(yè)應(yīng)用。 下面簡(jiǎn)要的說(shuō)一下Struts,它實(shí)質(zhì)上是在JSP Model2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC(Model、View、Controler)框架。JSP Model2體系結(jié)構(gòu)是一種聯(lián)合使用JSP 與Servlet 來(lái)提供動(dòng)態(tài)內(nèi)容的方法。在Struts框架中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的JavaBean或EJB組件構(gòu)成,控制器由Servlet實(shí)現(xiàn)的,視圖由一組JSP文件組成。采用Struts可以明確角色的定義和開發(fā)者與網(wǎng)頁(yè)設(shè)計(jì)者的分工。而且項(xiàng)目越復(fù)雜,其優(yōu)勢(shì)越明顯。 七、 源代碼安全 PHP開發(fā)的程序的源代碼都是公開的,他人拿到php開發(fā)的程序后都可以進(jìn)行修改。 Java開發(fā)的程序,最后用戶拿到的是只是一些編譯好的class類,無(wú)法看到完整的源代碼,安全性高。 八、性能比較 有人做過試驗(yàn),對(duì)這兩種種語(yǔ)言分別做回圈性能測(cè)試及存取Oracle數(shù)據(jù)庫(kù)測(cè)試。 在循環(huán)性能測(cè)試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的回圈。而PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒。 數(shù)據(jù)庫(kù)測(cè)試中,二者分別對(duì) Oracle 8 進(jìn)行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。 表格 1 PHP 與Java的比較 PHP JAVA 可復(fù)用性 低 高 開發(fā)速度 快 慢 易維護(hù)性 差 優(yōu) 可移植性 優(yōu)-Linux、Windows、Unix等 安全性 低 高 開發(fā)費(fèi)用 低 高 多層架構(gòu) 差 優(yōu) 數(shù)據(jù)庫(kù)訪問 接口不統(tǒng)一 接口統(tǒng)一 可擴(kuò)展性 差 優(yōu) 面向?qū)ο?差 優(yōu) 綜上 PHP適合于快速開發(fā),中小型應(yīng)用系統(tǒng),開發(fā)成本低,能夠?qū)ψ儎?dòng)的需求作出快速的反應(yīng)。而Java適合于開發(fā)大型的應(yīng)用系統(tǒng),應(yīng)用的前景比較廣闊,系統(tǒng)易維護(hù)、可復(fù)用性較好。還有,同樣功能的系統(tǒng)用Java開發(fā)的系統(tǒng)要比PHP開發(fā)的系統(tǒng)的價(jià)格要高
尤秀
在PHP中,=>操作符通常用于數(shù)組操作中,一般形式如下:array( key => value , ... ) 鍵(key) 可以是一個(gè)整數(shù)(integer) 或 字符串(string), 值(value) 可以是任意類型的值。如: $arr = array("foo" => "bar", 12 => true);===================================-> 操作符用于類、對(duì)象的操作中,以下是示例:<?phpclass foo{ function do_foo() { echo "Doing foo."; }}$bar = new foo;$bar->do_foo();?>