PHP 手冊
前一頁 | 章 2. PHP 入門教學 | 下一頁

# 在新版本的 PHP 中使用舊程式碼

隨著 PHP 的日益普及，在網際網路上已有許多程式碼可供下載使用於您的程式中。PHP 的開發人員已盡量使得新版本的 PHP 能回溯相容﹝backward compatible﹞，所以一般上在新版本的 PHP 中運行舊版下開發的 PHP 程式是不會有問題的。但事實上某些更改還是需要的。

近期兩個影響舊程式碼最大的更改是：

- $HTTP_*_VARS 式的陳列被取代﹝以往在函數或方法中使用它時必須指明它為全域﹞。下列新的 autoglobal 陳列在 PHP 4.1.0 版開始推出：$_GET、$_POST、$_COOKIE、$_SERVER、$_ENV、$_REQUEST 和 $_SESSION。$HTTP_*_VARS 式的陳列如 $HTTP_POST_VARS 自 PHP 3 開始就已存在，現時仍然可以使用。 由 PHP 5.0.0 開始，較長的 PHP 先前定義的變數陳列可以通過設定 register_long_arrays 來關閉。

- 來自外部的變數已不會在全域範圍裡自動為您註冊。自 PHP 4.2.0 起，`php.ini` 中的 register globals 指令已預設為 off。存取這些變數值的建議方法是透過上面介紹過的 autoglobal 陳列。舊的程式、書籍或教學文章可能依賴此指令設成 on 才能正常操作。當設成 on 時，http://www.example.com/foo.php?id=42 這一 URL 中 id 的值可直接以 $id 變數取得。無論是 on 與否，您都可以使用 $_GET['id']，而且是被建議的做法。

關於這些更改的詳細資料，請閱讀預先定義變數一節和那兒的連結。

前一頁 | 內容 | 下一頁
處理表單 | 上一層 | 下一步