新しいバージョンの PHP で古いコードを使用する
今や PHP は有名なスクリプト言語となってきており、
各自のスクリプトで再利用可能なコードとして、
多くのリソースが公開されています。PHP 言語の開発者の大部分は、
過去のバージョンとの互換性を保とうとしており、
過去のバージョン用に書かれたスクリプトは (理想的には)
より新しいバージョンの PHP で変更せずに動作するはずです。
しかし、実際には、通常いくつかの変更が必要となります。
古いコードに影響を与える最近の重要な二つの変更点を以下に示します。
-
$HTTP_*_VARS 配列が過去のものとなったこと
(これは、関数またはメソッドの中で使用する際にグローバル変数として
宣言を行なう必要がありました)。以下の
スーパーグローバル
配列が » 4.1.0
で導入されました。これらを以下に示します。
$_GET, $_POST,
$_COOKIE, $_SERVER,
$_ENV, $_REQUEST,
$_SESSION.
従来の $HTTP_POST_VARS のような配列 $HTTP_*_VARS
もまだ存在します。
PHP 5.0.0 以降、PHP の長い
定義済みの変数
配列は register_long_arrays
ディレクティブにより無効にすることができます。
-
外部変数は、もはやデフォルトでグローバルスコープに登録されません。
言い換えると、PHP » 4.2.0
以降、PHP ディレクティブ
register_globals は、
php.ini においてデフォルトで off となっています。
外部変数の値にアクセスするときには、
先ほど説明したスーパーグローバル配列を使うことを推奨します。
古いスクリプトや本、
チュートリアルはこのディレクティブに依存している可能性があります。
このディレクティブが on の場合、
例えば、URL http://www.example.com/foo.php?id=42
から $id を使用することができます。
on、off によらず $_GET['id'] は利用可能です。
これらの変更に関する詳細は、
定義済みの変数
のセクションおよびそこにあるリンクを参照してください。