今や PHP は有名なスクリプト言語となってきており、 各自のスクリプトで再利用可能なコードとして、 多くのリソースが公開されています。PHP 言語の開発者の大部分は、 過去のバージョンとの互換性を保とうとしており、 過去のバージョン用に書かれたスクリプトは (理想的には) より新しいバージョンの PHP で変更せずに動作するはずです。 しかし、実際には、通常いくつかの変更が必要となります。
古いコードに影響を与える最近の重要な二つの変更点を以下に示します。
$HTTP_*_VARS
配列が過去のものとなったこと (これは、関数またはメソッドの中で使用する際にグローバル変数として 宣言を行なう必要がありました)。以下の
オートグローバル 配列
が
4.1.0
で導入されました。これらを以下に示します。
$_GET
,
$_POST
,
$_COOKIE
,
$_SERVER
,
$_ENV
,
$_REQUEST
,
$_SESSION
. 従来の $HTTP_POST_VARS のような配列
$HTTP_*_VARS
もまだ存在し、PHP 3 以来維持されています。 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']
は利用可能です。