儘管PHP 4.x仍佔主流,但PHP 5.0(及後續5.1.x)已引入重大變革。本文回顧核心變化並展望PHP 6期望特性。
PHP 4中物件僅為粗糙數據類型(值傳遞),PHP 5重寫物件模型:支援引用傳遞、介面、抽象類、final、public/private/protected可見性、clone關鍵字、異常處理等,構建完整OO體系。可透過zend.ze1_compatibility_mode兼容舊代碼。
cfunction、old_function。array_merge()僅接受陣列;get_class()等返回大小寫敏感結果。strrpos()使用整個字串;ip2long()無效IP返回FALSE而非-1。require_once()/include_once()在Windows上大小寫不敏感。遷移通常只需微調代碼。PHP 5提供更優雅的解決方案,但若僅求運行,舊碼多能平滑過渡。
社群期盼:原生Unicode支援、命名空間、晚期靜態綁定、更強的類型提示、移除過時特性(如register_globals)、效能進一步提升。PHP 6旨在解決國際化與大型專案架構痛點,推動PHP邁向企業級開發新高度。(注:後來PHP 6因Unicode實作困難被擱置,相關特性分批併入PHP 5.3/5.4/7.x)