PHP的缺點(diǎn)
PHP的含義是“個(gè)人主頁(yè)”。PHP在1995年由Rasms Lerdorf發(fā)布初始版本,著眼于支持小型,簡(jiǎn)單的動(dòng)態(tài)網(wǎng)絡(luò)應(yīng)用,例如在網(wǎng)絡(luò)早期受歡迎的留言板和計(jì)數(shù)器。下面小編為大家介紹PHP的缺點(diǎn)吧!
1. 未知類型轉(zhuǎn)換。
程序員每天都在比較編程語言,例如整數(shù)和浮點(diǎn)數(shù)與> =運(yùn)算符; heck,甚至C都是允許。其意圖是完全清楚的。不太清楚的是使用==比較字符串和整數(shù)意味著什么,不同的語言做出了不同的選擇。 PHP在這個(gè)部分的選擇是特別不恰當(dāng)?shù)模@導(dǎo)致了異常和未檢測(cè)到的錯(cuò)誤。例如,123 ==“123foo”求值為true,但0123 ==“0123foo”是false(hmm)。
2.值語義,引用的不一致。
PHP 有一個(gè)明確的語義--賦值,參數(shù)傳遞和返回都是通過值來傳遞。程序員可以選擇參考語義與注釋。這將與PHP 4和5中引入了面向?qū)ο蟮木幊坛绦驔_突。 PHP的面向?qū)ο蠓?hào)大部分是從Java借鑒的,Java具有通過引用處理對(duì)象的語義,而基本類型由值來處理。所以PHP的語義的當(dāng)前狀態(tài)是對(duì)象通過引用傳遞,基本類型通過值傳遞,但是舊的引用語義和&表示法依然保留,有時(shí)候與新的方式對(duì)接會(huì)出現(xiàn)未知的現(xiàn)象。
3.哲學(xué)。
PHP進(jìn)行了非常多的嘗試來滿足運(yùn)行需求,它甚至做了一些很奇特的事情。例如,除以0不會(huì)拋出異常,或返回INF值,或終止請(qǐng)求。默認(rèn)情況下。它警告并賦值為false。由于false在數(shù)值上默認(rèn)值0,所以許多應(yīng)用程序在部署和運(yùn)行中沒有檢測(cè)到除以0的錯(cuò)誤。這個(gè)特殊的問題在PHP 7中改變了,但是設(shè)計(jì)的動(dòng)力是不斷的發(fā)展,在過去它可能有意義的,也遍及很多的庫(kù)中。
4.標(biāo)準(zhǔn)庫(kù)中不一致。
在PHP發(fā)展初期,其受眾者大都熟悉C語言,許多API使用C標(biāo)準(zhǔn)庫(kù)的設(shè)計(jì)語言:六個(gè)字符的小寫名稱,成功和失敗返回一個(gè)整數(shù)返回值,返回值為“實(shí)數(shù)“,返回值由調(diào)用者out參數(shù)返回等等。隨著PHP成熟,通過前綴_命名空間的C風(fēng)格變得更加普遍:mysql_ ...,json_ ...等等。最近,Java風(fēng)格的CamelCase類的camelCase方法的已經(jīng)成為最多的常見的引入新函數(shù)的方式。因此,有時(shí)我們看到的代碼片斷交錯(cuò)表達(dá)式像新DirectoryIterator($路徑)與if(!($f = fopen($ p,'w +'))...一個(gè)全新的方式。
使用了PHP的這些項(xiàng)目的成功,主要?dú)w功于 PHP環(huán)境的特性,以及其帶來的高節(jié)奏的工作流。而環(huán)境的優(yōu)勢(shì)所帶來的價(jià)值要比由語言缺陷所造成的問題更加重要。還有一點(diǎn)在 MPDPL 當(dāng)中比較獨(dú)特的就是, 以 Hack 和 HHVM 的形式向更高的性能,更安全和更高的可維護(hù)性這些方面的遷移,途徑是明確的。Slack 目前正處在向 HHVM 過渡的后期階段,以及向 Hack 過渡的早期階段,而我們也樂觀地認(rèn)為它們將會(huì)讓我們的更加快速的產(chǎn)出更好的軟件。
【PHP的缺點(diǎn)】相關(guān)文章:
PHP語言的優(yōu)缺點(diǎn)08-09
什么是PHP PHP與ASP比較09-18
php正則去掉php注釋07-30
PHP中php://input和$-POST的區(qū)別08-26
PHP試題07-04
PHP是做什么的 如何學(xué)習(xí)PHP06-18
php的發(fā)展歷程08-23
PHP網(wǎng)站模板精選06-13