為什麼php不適合應用在大型系統的打造呢?大家一定認為是安全性的問題。但事實上不僅僅是這樣。下面為大家介紹一下。
為什麼php不能做大型系統?原因是什麼?
混亂的授權
你也許認為PHP是免費的,所有的在手冊中提到的PHP模組也是免費的。錯了!例如,如果你想在PHP中產生PDF文件,你會在手冊中發現兩個模組:PDF 和 ClibPDF。但是這兩個都是有商業許可證的。所以,你所使用的每個模組,你都要確保你同意他的許可證。
不一致的函數命名規則
有些函數名稱是有多個單字組成的。一般有三種單字組合的習慣:
直接拼接:getnumberoffiles
用底線分開:get_number_of_files
駱駝法則:getNumberOfFiles
大部分語言選擇其中一中。但是PHP都用到了。
魔法引用的地獄
魔法引用(Magic quote)可以保護PHP腳本免受SQL注入攻擊。這很好。但是出於某些原因,你可以在php.ini中關閉這個配置。所以你如果要寫出一個有彈性的腳本,你總是要檢查魔法引用是開啟還是關閉。這樣一個「特性」應該會讓程式設計更簡單,而事實上變得更複雜了。
許多PHP模組都不是線程安全的
在幾年前,Apache發布了Web伺服器的2.0版。這個版本支援多執行緒模式,在這個模式下,軟體一個一部分可以同時運行多個。 PHP的發明者說PHP的核心是線程安全的,但是非核心模組不一定是。但十次有九次,你想要在PHP腳本中使用這個模組,但這又讓你的腳本無法適合Apache的多執行緒模式。這也是為什麼PHP小組不建議在Apache 2 的多執行緒模式下執行PHP。不良的多執行緒模式支援使PHP常被認為是Apache 2仍然不流行的原因之一。
不標準的日期格式字元
很多程式設計師對 日期格式字元 都很熟悉,它是從UNIX和C語言中來的。其他一些程式語言採用了這個標準,但是很奇怪的,PHP有它自己的一套完全不相容的日期格式字元。在C中,「%j」表示一年中的當天,在PHP中他表示一個月中的當天。然而讓事情更混亂的是:Smarty (一個很流行的PHP模版引擎)的 strftime 函數和 date_format 函數,卻使用了C/UNIX的格式化字元。
推薦學習:PHP教學
以上是為什麼php不能做大型系統?的詳細內容。更多資訊請關注PHP中文網其他相關文章!