首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 4 與 PHP 5 核心差異總結:物件模型、語法、配置與遷移指南

     編輯:PHP 綜合知識

歷史背景

PHP 4(2000)引入初步物件導向;PHP 5(2004)重寫物件模型(Zend Engine 2),引入介面、抽象類、靜態成員、魔術方法、PDO 等,不完全向下相容。國內虛擬主機長期停留 PHP 4,導致開發者須同時應對兩版本差異。

核心語法差異

特性PHP 4PHP 5
可見性關鍵字無(全部 public),屬性用 varpublic / protected / private / static
建構子與類同名函數__construct()
解構子無__destruct()
物件傳遞值傳遞(複製整個物件)參考傳遞(控制代碼/handle)
鏈式呼叫不支援 $obj->a()->b()支援
字串插值解析物件屬性/方法不支援 "{$obj->method()}"支援
靜態成員無支援 static
介面無支援 interface
抽象類無支援 abstract
Final 關鍵字無支援
自動載入無__autoload() / spl_autoload_register()

遷移常見錯誤與修正

1. Parse error: unexpected T_STRING (public/private/protected)

PHP 4 不支援可見性關鍵字。

// PHP 5
class A { public $x = 1; }

// PHP 4 相容寫法
class A { var $x = 1; }

2. 物件方法鏈式呼叫失效

// PHP 5
$obj->methodA()->methodB();

// PHP 4 需拆分
$tmp = $obj->methodA();
$tmp->methodB();

3. 複雜字串插值

// PHP 5
echo "Status: {$db->isConnected()}";

// PHP 4
$status = $db->isConnected();
echo "Status: $status";

配置檔差異

項目PHP 4PHP 5
DLL/模組檔名php4ts.dll / php4apache2.dllphp5ts.dll / php5apache2.dll
Apache LoadModuleLoadModule php4_module .../php4apache2.dllLoadModule php5_module .../php5apache2.dll
MySQL 支援內建模組化:extension=php_mysql.dll + libmysql.dll
CGI 執行檔php.exephp-cgi.exe(CLI 為 php.exe)

PHP 5 新增函數精選

  • 陣列:array_combine, array_udiff, array_walk_recursive
  • 檔案:file_put_contents, scandir
  • 日期:date_sunrise, date_sunset, idate
  • 字串:str_split, substr_compare
  • 其他:http_build_query, get_headers, curl_copy_handle

新 INI 指令

  • session.hash_function (MD5/SHA-1)
  • session.hash_bits_per_character (4~6)
  • zend.ze1_compatibility_mode(PHP 4 相容模式,慎用)

資料庫變化

  • 不再內建 MySQL client library(授權問題),改用 MySQLi(支援 MySQL 4.1+ 預處理、交易、多查詢)。
  • SQLite 內建:輕量級嵌入式資料庫,直接讀寫檔案。

遷移建議

  1. 開發環境統一 PHP 5.6+ / 7.x / 8.x。
  2. 使用 include_once/require_once 避免重複定義致命錯誤。
  3. 啟用 error_reporting(E_ALL) 發現相容性問題。
  4. 資料庫層改用 PDO 或 MySQLi,棄用 mysql_* 函數(PHP 7 移除)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved