ホームページ  >  記事  >  バックエンド開発  >  phpの事前定義変数メソッド

phpの事前定義変数メソッド

小云云
小云云オリジナル
2017-11-15 15:10:101879ブラウズ

PHP には多数の事前定義変数が用意されており、多くの変数は実行中のサーバーのバージョンや設定、その他の要因に依存するため、一部の事前定義変数はコマンドから実行した場合には有効になりません。これらの変数の詳細なリスト

ユーザー定義の事前定義変数

コード例は次のとおりです:

<?php  
echo "当前操作系统信息".PHP_OS."<br/>";  
echo &#39;本文件路径和文件名为:&#39;.__FILE__.&#39;<br />&#39;;  
echo "当前PHP版本信息".PHP_VERSION."<br/>";  
?>

システム事前定義変数

$GLOBALS

グローバル スコープで有効な変数への参照が含まれています。この配列のキー名はグローバル変数の名前です。PHP 3 以降では、$GLOBALS 配列があり、変数は Web サーバーによって設定されるか、実行に直接関連付けられます。現在のスクリプトの環境。古い配列 $HTTP_SERVER_VARS 配列に似ています (まだ有効ですが、非推奨です)

$_GET

古い配列 $HTTP_GET_VARS 配列に似ています (まだ有効ですが)。非推奨) HTTP POST 経由の

$_POST

HTTP Cookie メソッドを介してスクリプトに送信される変数。古い配列 $HTTP_POST_VARS 配列に似ています (まだ有効ですが、非推奨です)。 HTTP Cookies メソッド経由。古い配列 $HTTP_COOKIE_VARS 配列 (まだ有効ですが、非推奨) に似ています。

$_FILES

HTTP POST ファイルのアップロード経由でスクリプトに送信される変数。古い配列 $HTTP_POST_FILES 配列に似ています。詳細については、POST メソッドのアップロードを参照してください。

$ _ENV

古い配列 $HTTP_ENV_VARS 配列に似ています (まだ有効ですが、非推奨です)。

変数は GET、POST、COOKIE メカニズムを介してスクリプトに送信されるため、この配列は信頼できません。この配列に含まれるすべての変数の存在と順序は、php.ini の variables_order 設定ディレクティブに従って定義されます。 PHP 4.1.0 より前には直接対応するものはありません。 import_request_variables( ) を参照してください。

PHP 4.3.0 以降、$_FILES のファイル情報は $_REQUEST に存在しなくなりました。

注: コマンド ライン モードで実行すると、この配列はargv および argc エントリは含まれていません。配列 $_SERVER に既に存在します。現在スクリプト セッションに登録されている変数です (まだ有効ですが、使用は非推奨です)。 $_SERVER['PHP_SELF']

現在 実行されるスクリプトのファイル名はドキュメントルートに関連付けられます。たとえば、URL アドレス http://example.com のスクリプト内で $_SERVER['PHP_SELF'] を使用します。 /test.php/foo.bar は /test .php/foo.bar になります。PHP がコマンドラインモードで実行されている場合、この変数は無効です。

$_SERVER['SERVER_NAME']

の名前。スクリプトが現在実行されているサーバー ホスト。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストによって設定された値によって決まります。たとえば、URL アドレスが /test.php $_SERVER['SERVER_NAME である場合。 '] を実行すると、この結果が得られます。

コード例は次のとおりです。

<?php 
// user sent a GET header with key = secret_access, val = true, so 
echo $_GET["secret_access"]; // output: true 
echo $secret_access; // output: 
session_start(); 
// in previous logic, you set session variable $secret_access = false 
echo $_SESSION["secret_access"]; // output: false 
echo $secret_access; // output: false 
extract_globals();  // Globals put into "normal" variables 
echo $_GET["secret_access"]; // output: true 
echo $_SESSION["secret_access"]; // output: false 
echo $secret_access; // output: true 
// VARIABLES ARE COMPROMISED! 
// DO NOT USE $secret_access ! 
// USE $_SESSION["secret_access"] instead !!! 
?>

php 4.2.0 以降のバージョンでは、php ディレクティブ register_globals のデフォルト値は off です。これはphpに対する大きな変更です。 register_globals の値を off に設定すると、グローバル スコープに設定された事前定義変数の有効性に影響します。たとえば、DOCUMENT_ROOT の値を取得するには、$DOCUMENT_ROOT の代わりに $_SERVER['DOCUMENT_ROOT'] を使用する必要があります。たとえば、ID 値を取得するには、$id の代わりに $_GET['id'] を使用します。または、 $_ENV['HOME '] を使用して $HOME を置き換え、環境変数 HOME の値を取得します。

関連する推奨事項:

PHP 事前定義変数の例の詳細な説明

php 事前定義変数

php 事前定義変数_PHP チュートリアル

以上がphpの事前定義変数メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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