亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊會員 設(shè)為首頁 | 收藏本站
當(dāng)前位置 : 首頁>軟件學(xué)院>程序開發(fā)>PHP教程>正文
 
PHP程序不適用大型系統(tǒng)的九大原因

http://www.yibo1263.com 2008/7/2 11:07:57  來源:本站  編輯:葉子
 
  PHP確實(shí)十分容易編寫。但是PHP也有一些十分嚴(yán)重的缺陷。下面我會給出我的理由,為什么PHP不適合于比小型業(yè)余網(wǎng)站更大的網(wǎng)站。

  1、對遞歸的不良支持

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

  2、許多PHP模塊都不是線程安全的

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

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

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

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

  4、沒有命名空間

  設(shè)想某個人制作了一個PHP模塊用來閱讀文件。模塊中一個函數(shù)叫做read。然后另一個人的模塊可以讀取網(wǎng)頁的,同樣包含一個函數(shù)read。然后我們就無法同時使用這兩個模塊了,因?yàn)镻HP不知道你要用哪個函數(shù)。但是有一個很簡單的解決方法,那就是命名空間。曾經(jīng)有人建議PHP5加入這個特性,但不幸的是他沒有這么做,F(xiàn)在,沒有命名空間,每個函數(shù)都必須加上模塊名作為前綴,來避免名稱沖突。這導(dǎo)致了函數(shù)名恐怖得長,例如xsl_xsltprocessor_transform_to_XML讓代碼難于書寫和理解。

  5、不標(biāo)準(zhǔn)的日期格式字符

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

  6、混亂的許可證

  你也許認(rèn)為PHP是免費(fèi)的,所有的在手冊中提到的PHP模塊也是免費(fèi)的。錯了!例如,如果你想在PHP中生成PDF文件,你會在手冊中發(fā)現(xiàn)兩個模塊:PDF 和 ClibPDF。但是這兩個都是有商業(yè)許可證的。所以,你所使用的每個模塊,你都要確保你同意他的許可證。

  7、不一致的函數(shù)命名規(guī)則

  有些函數(shù)名稱是有多個單詞組成的。一般有三種單詞組合的習(xí)慣:

  直接拼接:getnumberoffiles

  用下劃線分開:get_number_of_files

  駱駝法則:getNumberOfFiles

  大部分語言選擇其中一中。但是PHP都用到了。

  例如,你想要把一些特殊字符轉(zhuǎn)換成HTML實(shí)體,你會使用函數(shù)htmlentities (直接拼接單詞)。如果你要使用相反的功能,你要用到它的小弟html_entity_decode。由于某些特殊的原因,這個函數(shù)名是由下劃線分隔單詞。怎么能這樣呢?你知道有一個函數(shù)叫strpad。或者他是str_pad?每次你都要查看一下到底這個符號是什么或者直接等他出現(xiàn)一個錯誤。函數(shù)是不分大小寫的,所以對于PHP來說rawurldecode 和RawUrlDecode之間沒有什么區(qū)別。這也很糟糕,因?yàn)閮蓚都使用到了同時他們看上去還不一樣,混淆了閱讀者。

  8、魔法引用的地獄

  魔法引用(Magic quote)可以保護(hù)PHP腳本免受SQL注入攻擊。這很好。但是出于某些原因,你可以在php.ini中關(guān)閉這個配置。所以你如果要寫出一個有彈性的腳本,你總要檢查魔法引用是開啟還是關(guān)閉。這樣一個“特性”應(yīng)該讓編程更簡單,而事實(shí)上變得更復(fù)雜了。

本新聞共2頁,當(dāng)前在第1頁  1  2  

收藏】【打印】【進(jìn)入論壇
  相關(guān)文章:

 
 
 
最新文章

搶先蘋果,消息稱英特爾芯片采用臺積電
三星揭曉業(yè)內(nèi)首款單條 512GB DDR5 內(nèi)存
vivo 高端新機(jī)爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息稱三星 Galaxy Tab S8 系列平板將放
機(jī)械革命推出 F6 輕薄本:16 英寸全面屏
英特爾 12 代 Alder Lake CPU 600 系列
雷軍:向小米手機(jī) 1 首批用戶每人贈送價
小米李明談用戶被踢出 MIUI 測試版:大

推薦文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感寫真
宮如敏不雅照瘋傳 看張馨予韓一菲獸獸誰
不懼孔子搶位 阿凡達(dá)游戲影音配置推薦
2015第十七屆“東北安博會”火爆招商
第十六屆東北國際公共安全防范產(chǎn)品博覽
2016年第五屆中國國際商業(yè)信息化博覽會
2016年第五屆中國國際POS機(jī)及相關(guān)設(shè)備展
互聯(lián)網(wǎng)電視熟了嗎 2013最火電視深解析
桑達(dá)獲邀出席2015中國(廣州)國際POS機(jī)
寶獲利報名參加“2015年度中國POS機(jī)行業(yè)
八卦圖解 More>>
叛逆嫩模性感寫真 宮如敏不雅照瘋傳 看張馨予韓一菲
周偉童魔鬼身材日本性感寫真圖  聯(lián)想V360筆記本模特寫真