為什麼php不能做大型系統?

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