筆者在過去的四年裡一直致力於PHP應用的開發。PHP確實十分容易編寫。但是PHP也有一些十分嚴重的缺陷。
下面筆者會給出自己的理由,為什麼PHP不適合於比小型業余網站更大的網站。
1. 對遞歸的不良支持
遞歸是一種函數調用自身的機制。這是一種強大的特性可以把某些復雜的東西變得很簡單。有一個使用遞歸的例子是快速排序(quicksort)。不幸的是,PHP並不擅長遞歸。Zeev,一個PHP開發人員,說道:“PHP 4.0(Zend)對密集數據使用了棧方式,而不是使用堆方式。也就是說它能容忍的遞歸函數的數量限制和其他語言比起來明顯少。”見bug 1901。這是一個很不好的借口。每一個編程語言都應該提供良好的遞歸支持。
2. 許多PHP模塊都不是線程安全的
在幾年前,Apache發布了Web服務器的2.0版。這個版本支持多線程模式,在這個模式下,軟件一個一部分可以同時運行多個。PHP的發明者說PHP的核心是線程安全的,但是非核心模塊不一定是。但是十次有九次,你想要在PHP腳本中使用這種模塊,但這又使你的腳本不能合適Apache的多線程模式。這也是為什麼PHP小組不推薦在Apache 2 的多線程模式下運行PHP。不良的多線程模式支持使PHP常被認為是Apache 2依然不流行的原因之一。
請閱讀這篇討論: