ホームページ  >  記事  >  バックエンド開発  >  PHPの定義済み変数

PHPの定義済み変数

伊谢尔伦
伊谢尔伦オリジナル
2016-11-24 13:47:501256ブラウズ

PHP には、多数の事前定義変数が用意されています。多くの変数は実行中のサーバーのバージョンや設定、その他の要因に依存するため、詳細なドキュメントは利用できません。一部の定義済み変数は、PHP をコマンド ラインから実行した場合には有効になりません。

警告

PHP 4.2.0 以降のバージョンでは、PHP ディレクティブ register_globals のデフォルト値は off です。これは PHP に対する大きな変更です。 register_globals を off に設定すると、事前定義された変数セットのグローバルな可用性に影響します。たとえば、DOCUMENT_ROOT の値を取得するには、$DOCUMENT_ROOT の代わりに $_SERVER['DOCUMENT_ROOT'] を使用する必要があります。別の例として、URL http://www から $id の代わりに $_GET['id'] を使用します。 .example.com/test .php?id=3 の ID 値を取得するか、$HOME の代わりに $_ENV['HOME'] を使用して環境変数 HOME の値を取得します。

スーパーグローバル配列などの PHP 定義済み変数を使用するのが最善です。

PHP 4.1.0 以降、PHP は、Web サーバー (利用可能な場合)、ランタイム環境、およびユーザー入力からのデータを含む、事前に決定された配列変数の追加セットを提供します。これらの配列は、自動的にグローバルに、つまりどのスコープでも自動的に有効になるという点で非常に特殊です。したがって、それらはオートグローバルまたはスーパーグローバルと呼ばれることがよくあります。 (PHP にはユーザー定義のスーパーグローバル変数のメカニズムはありません。) スーパーグローバル変数は以下にリストされていますが、その内容と、PHP の事前定義変数とその性質の詳細については、「事前定義変数」を参照してください。さらに、古い事前定義配列 ($HTTP_*_VARS) がまだ存在していることにも気づくでしょう。 PHP 5.0.0 以降、long 型の PHP 定義済み変数配列は register_long_arrays 設定オプションを使用して無効にできます。

注: 可変変数

スーパー グローバル変数は、関数またはクラス メソッドで可変変数として使用できません。

注:

スーパーグローバル変数と HTTP_*_VARS は同時に存在しますが、これらは同じ変数ではないため、一方の値を変更しても他方には影響しません。

variables_order の一部の変数が設定されていない場合、対応する PHP 定義済み配列も空になります。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。