語法:PHP 的語法看起來就像沒有經(jīng)過精心設(shè)計一樣,很隨意。有的語法看似很方便(用點來連接字符串), 但是卻為之后擴(kuò)展造成了很多麻煩(點沒法用于訪問對象的成員), 再比如比較蛋疼的命名空間的語法。Python 相比之下要好一點,但是 Python2 和 Python3 直接存在著一些不兼容的語法變動。
編寫 HTML 模版:PHP 可以非常方便地直接用來編寫 HTML 模版,Python 需要借助其他的語言或庫來實現(xiàn)。
包管理器:PHP 的包管理器(PEAR)和擴(kuò)展管理器(PECL)恐怕根本沒人用,這導(dǎo)致引入一個新依賴的成本很高,于是很多人傾向于自己造輪子而不是引入現(xiàn)成的庫。Python 有統(tǒng)一的包管理器,雖然也有問題,但要比 PHP 好得多,引入庫之后的命名空間管理也要比 PHP 好。
擴(kuò)展和庫:PHP 和 Python 都可以用 C 來編寫擴(kuò)展。相比之下 Python 可用的庫要更多一點。
運(yùn)行方式:PHP 運(yùn)行方式比較單一(php-fpm, mod_php), Python 則可以以 fastCGI 運(yùn)行,也可以自行監(jiān)聽端口來處理請求。
性能:因為 PHP 運(yùn)行方式單一,opcode 緩存方案也比較成熟(APC, opcache),緩存 opcode 之后運(yùn)行速度很快。Python 則可能需要更多地自行優(yōu)化性能。
類型系統(tǒng):PHP 和 Python 都是動態(tài)類型。PHP 對類型判別比較模糊,有很多陷阱,Python 則嚴(yán)格一些。
學(xué)習(xí)成本:PHP 和學(xué)習(xí)成本都不是很高。PHP 優(yōu)勢在于有比較完整的官方中文文檔,而且 PHP 應(yīng)用領(lǐng)域只有 Web, 所以需要學(xué)習(xí)的內(nèi)容較少。Python 因為學(xué)習(xí)路線較多,不太容易找到適合自己的教程和資料。
社區(qū):PHP 的資料遍地,但是高質(zhì)量的中文社區(qū)較少,普遍對官方的新功能不是很關(guān)注。Python 則要好一點。
應(yīng)用領(lǐng)域:PHP 僅在 Web 后端方面被使用,Python 應(yīng)用領(lǐng)域更廣泛一點,如果需要將邏輯移植到其他平臺(如桌面), Python 要方便一點。