教培參考
教育培訓(xùn)行業(yè)知識型媒體
發(fā)布時間: 2025年01月06日 19:46
優(yōu)點一:狀態(tài)
每一個網(wǎng)頁請求都是從一個完完全全的白板開始。除了提供原始功能和生命支持的標(biāo)準(zhǔn)的全局變量,函數(shù)和類以外,它的命名空間和全局變量都是未初始化的。通過從已知狀態(tài)開始每一個請求,我們可以得到一種本質(zhì)上的故障隔離;如果請求t遇到了軟件的缺陷和失敗,這個缺陷不會直接干擾后續(xù)的請求t+1。狀態(tài)駐留在程序堆以外的其他地方,當(dāng)然它有可能有狀態(tài)地弄糟數(shù)據(jù)庫,或者緩存,或者文件信息系統(tǒng)。但是PHP和所有允許存在的可能環(huán)境分擔(dān)了它的弱點。隔離請求堆從另一個方面降低了大多數(shù)程序缺陷的成本。
優(yōu)點二:處理并發(fā)的優(yōu)勢
一個獨立的網(wǎng)絡(luò)請求運行在一個單獨的PHP線程上。乍看,這似乎是一個愚蠢的限制。但是一旦你的程序執(zhí)行在一個網(wǎng)絡(luò)服務(wù)器的上下文中以后,我們就有了一個可用的自然并發(fā):網(wǎng)絡(luò)請求。異步地CURL到本地服務(wù)(甚至是網(wǎng)絡(luò)服務(wù))提供了一個開發(fā)并行性的無共享,拷入/拷出的方式。在實踐中,這對錯誤來說比大多數(shù)其他通用語言提供的鎖共享狀態(tài)方法要更安全,更具有彈性。
優(yōu)點三:事實上PHP程序在一個請求級別操作意味著程序員的工作流程是快速而有效的,并保持隨著應(yīng)用的變化而快速變化。許多開發(fā)者使用的語言聲稱是這樣,但是如果它們沒有為每一個請求重置狀態(tài),主事件循環(huán)將和請求共享程序級狀態(tài),它們幾乎總是需要一些啟動時間。例如,對一個典型的Python應(yīng)用服務(wù),調(diào)試周期看起來像這樣想;編輯;重啟服務(wù);發(fā)送一些測試請求。即使重啟服務(wù)只花了幾秒,但這也會讓我們?nèi)祟愑邢薜拇竽X為了保持到微妙狀態(tài)浪費15到30秒的時間。
我敢說,PHP簡單的想,編輯,重新加載頁面周期讓開發(fā)者更有效率。在一個漫長而復(fù)雜的軟件項目的生命周期過程中,這提高了生產(chǎn)力。
如果上面所說的全都是對的,那為什么還有那么多人不喜歡PHP呢?當(dāng)你拋開各種各樣夸張的說法,對于PHP的抱怨,最多聚集在幾個最基本的原因:
缺點一:未知類型轉(zhuǎn)換
程序員這些天幾乎在比較所有的語言,例如整數(shù)和浮點數(shù)與=運算符;heck,甚至C都是允許。其意圖是完全清楚的。不太清楚的是使用==比較字符串和整數(shù)意味著什么,不同的語言做出了不同的選擇。PHP在這個部分的選擇是特別不恰當(dāng)?shù)?,這導(dǎo)致了異常和未檢測到的錯誤。
缺點二:值語義,引用的不一致
PHP3有一個明確的語義--賦值,參數(shù)傳遞和返回都是通過值來傳遞,創(chuàng)建一個問題的數(shù)據(jù)的淺拷貝。程序員可以選擇參考語義與注釋[2]。這將與PHP4和5中引入了面向?qū)ο蟮木幊坛绦驔_突。PHP的面向?qū)ο蠓柎蟛糠质菑腏ava借鑒的,Java具有通過引用處理對象的語義,而基本類型由值來處理。所以PHP的語義的當(dāng)前狀態(tài)是對象通過引用傳遞(選擇Javaover,比如說C++),基本類型通過值傳遞(其中Java,C++和PHP允許),但是舊的引用語義和&表示法依然保留,有時候與新的方式對接會出現(xiàn)未知的現(xiàn)象。
以上就是從php專業(yè)角度進行了分析,當(dāng)然php的優(yōu)點并不止于此,小編認(rèn)為他最大的優(yōu)點在于其開源免費,這也是市場占有率高的根本原因,也造就了php的強大,那么php培訓(xùn)哪里才能學(xué)到這么好的后端技術(shù)呢,不妨來優(yōu)逸客看看哦!
微信掃碼關(guān)注公眾號
獲取更多考試熱門資料