新しいバージョンの PHP で古いコードを使用する

今や PHP は有名なスクリプト言語となってきており、 各自のスクリプトで再利用可能なコードとして、 多くのリソースが公開されています。PHP 言語の開発者の大部分は、 過去のバージョンとの互換性を保とうとしており、 過去のバージョン用に書かれたスクリプトは (理想的には) より新しいバージョンの PHP で変更せずに動作するはずです。 しかし、実際には、通常いくつかの変更が必要となります。

古いコードに影響を与える最近の重要な二つの変更点を以下に示します。

  • 古い形式の配列 $HTTP_*_VARS は、PHP 5.4.0 以降使えなくなりました。 以下の スーパーグローバル 配列» 4.1.0 で導入されました。これらを以下に示します。 $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST, $_SESSION.
  • 外部変数は、もはやデフォルトでグローバルスコープに登録されません。 言い換えると、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'] は利用可能です。
これらの変更に関する詳細は、 定義済みの変数 のセクションおよびそこにあるリンクを参照してください。