為什麼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不能做大型系統?的詳細內容,更多請關注TW511.COM其它相關文章!