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

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

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

  • $HTTP_*_VARS 式的陳列被取代(以往在函式或方法中使用它時必須指明它為全域)。下列新的 superglobal 陳列在 PHP » 4.1.0 版開始推出:$_GET$_POST$_COOKIE$_SERVER$_FILES$_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。存取這些變數值的建議方法是透過上面介紹過的 superglobal 陣列。舊的程式、書籍或教學文章可能依賴此指令設成 on 才能正常操作。當設成 on 時,http://www.example.com/foo.php?id=42 這一 URL 中 id 的值可直接以 $id 變數取得。無論是 on 與否,您都可以使用 $_GET['id'],而且是被建議的做法。
關於這些更改的詳細資料,請閱讀預設變數一節和那裡的連結。

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top