新しいバージョンの 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
の場合、 例えば、URLhttp://www.example.com/foo.php?id=42
から$id
を使用することができます。 on、off によらず$_GET['id']
は利用可能です。
これらの変更に関する詳細は、 定義済みの変数 のセクションおよびそこにあるリンクを参照してください。