国产毛片午夜福利,国产黄网,国产亚洲天堂,97国产精品

  •  
    為什么說用PHP開發(fā)大型系統(tǒng)令人不爽
    發(fā)布時間:2008-04-28   瀏覽次數(shù):1184438

    為什么說用PHP開發(fā)大型系統(tǒng)令人不爽

    下面筆者會給出自己的理由,為什么PHP不適合于比小型業(yè)余網(wǎng)站更大的網(wǎng)站。

      1. 對遞歸的不良支持

      遞歸是一種函數(shù)調用自身的機制。這是一種強大的特性可以把某些復雜的東西變得很簡單。有一個使用遞歸的例子是快速排序(quicksort)。不幸的是,PHP并不擅長遞歸。Zeev,一個PHP開發(fā)人員,說道:“PHP 4.0(Zend)對密集數(shù)據(jù)使用了棧方式,而不是使用堆方式。也是說它能容忍的遞歸函數(shù)的數(shù)量限制和其他語言比起來明顯少!見bug 1901。這是一個很不好的借口。每一個編程語言都應該提供良好的遞歸支持。

      2. 許多PHP模塊都不是線程的

      在幾年前,Apache發(fā)布了Web服務器的2.0版。這個版本支持多線程模式,在這個模式下,軟件一個一部分可以同時運行多個。PHP的發(fā)明者說PHP的核心是線程的,但是非核心模塊不一定是。但是十次有九次,你想要在PHP腳本中使用這種模塊,但這又使你的腳本不能合適Apache的多線程模式。這也是為什么PHP小組不推薦在Apache 2 的多線程模式下運行PHP。不良的多線程模式支持使PHP常被認為是Apache 2依然不流行的原因之一。

      請閱讀這篇討論: Slashdot: Sites Rejecting Apache 2?.

      3. PHP 由于商業(yè)原因而不健全

      通過使用緩存,PHP的性能可以陡增500%[見基準測試]。那么為什么緩存沒有被構建在PHP中呢?因為Zend——PHP的制造者,它在銷售自己的Zend Accelerator,所以當然,他們不想拋棄自己的商業(yè)產(chǎn)品這塊肥肉。

      但是有另一個可選擇的: APC. (Zend后來推出Zend Optimizer,免費的加速器——譯者)

      4. 沒有命名空間

      設想某個人制作了一個PHP模塊用來閱讀文件。模塊中一個函數(shù)叫做read。然后另一個人的模塊可以讀取網(wǎng)頁的,同樣包含一個函數(shù)read。然后我們無法同時使用這兩個模塊了,因為PHP不知道你要用哪個函數(shù)。

      但是有一個很簡單的解決方法,那是命名空間。曾經(jīng)有人建議PHP5加入這個特性,但不幸得是他沒有這么做,F(xiàn)在,沒有命名空間,每個函數(shù)都必須加上模塊名作為前綴,來避免名稱沖突。這導致了函數(shù)名恐怖得長,例如xsl_xsltprocessor_transform_to_xml讓代碼難于書寫和理解。

      5. 不標準的日期格式字符

      很多程序員對 日期格式字符 都很熟悉,它是從UNIX和C語言中來的。其他一些編程語言采用了這個標準,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。在C中,“%j”表示一年中的當天,在PHP中他表示一個月中的當天。然而使事情更混亂的是:Smarty (一個很流行的PHP模版引擎)的 strftime 函數(shù)和 date_format 函數(shù),卻使用了C/UNIX的格式化字符。

    立即預約