PHP的缺點

來源:文萃谷 2.17W

PHP的含義是“個人主頁”。PHP在1995年由Rasms Lerdorf發佈初始版本,着眼於支持小型,簡單的動態網絡應用,例如在網絡早期受歡迎的留言板和計數器。下面小編為大家介紹PHP的缺點吧!

PHP的缺點

1. 未知類型轉換。

程序員每天都在比較編程語言,例如整數和浮點數與> =運算符; heck,甚至C都是允許。其意圖是完全清楚的。不太清楚的是使用==比較字符串和整數意味着什麼,不同的語言做出了不同的選擇。 PHP在這個部分的選擇是特別不恰當的,這導致了異常和未檢測到的錯誤。例如,123 ==“123foo”求值為true,但0123 ==“0123foo”是false(hmm)。

2.值語義,引用的不一致。

PHP 有一個明確的語義--賦值,參數傳遞和返回都是通過值來傳遞。程序員可以選擇參考語義與註釋。這將與PHP 4和5中引入了面向對象的編程程序衝突。 PHP的面向對象符號大部分是從Java借鑑的,Java具有通過引用處理對象的.語義,而基本類型由值來處理。所以PHP的語義的當前狀態是對象通過引用傳遞,基本類型通過值傳遞,但是舊的引用語義和&表示法依然保留,有時候與新的方式對接會出現未知的現象。

3.哲學。

PHP進行了非常多的嘗試來滿足運行需求,它甚至做了一些很奇特的事情。例如,除以0不會拋出異常,或返回INF值,或終止請求。默認情況下。它警告並賦值為false。由於false在數值上默認值0,所以許多應用程序在部署和運行中沒有檢測到除以0的錯誤。這個特殊的問題在PHP 7中改變了,但是設計的動力是不斷的發展,在過去它可能有意義的,也遍及很多的庫中。

4.標準庫中不一致。

在PHP發展初期,其受眾者大都熟悉C語言,許多API使用C標準庫的設計語言:六個字符的小寫名稱,成功和失敗返回一個整數返回值,返回值為“實數“,返回值由調用者out參數返回等等。隨着PHP成熟,通過前綴_命名空間的C風格變得更加普遍:mysql_ ...,json_ ...等等。最近,Java風格的CamelCase類的camelCase方法的已經成為最多的常見的引入新函數的方式。因此,有時我們看到的代碼片斷交錯表達式像新DirectoryIterator($路徑)與if(!($f = fopen($ p,'w +'))...一個全新的方式。

使用了PHP的這些項目的成功,主要歸功於 PHP環境的特性,以及其帶來的高節奏的工作流。而環境的優勢所帶來的價值要比由語言缺陷所造成的問題更加重要。還有一點在 MPDPL 當中比較獨特的就是, 以 Hack 和 HHVM 的形式向更高的性能,更安全和更高的可維護性這些方面的遷移,途徑是明確的。Slack 目前正處在向 HHVM 過渡的後期階段,以及向 Hack 過渡的早期階段,而我們也樂觀地認為它們將會讓我們的更加快速的產出更好的軟件。

熱門標籤