サーチ…


前書き

スーパーグローバルは、すべてのスコープで常に使用可能な組み込み変数です。

PHPのいくつかの事前定義された変数は "スーパーグローバル"です。つまり、スクリプト全体を通してすべてのスコープで利用可能です。 global $variable;を行う必要はありませんglobal $variable;関数やメソッド内でそれらにアクセスすることができます。

PHP5スーパーグローバル

以下はPHP5のスーパーグローバル

  • $ GLOBALS
  • $ _REQUEST
  • $ _GET
  • $ _POST
  • $ _FILES
  • $ _SERVER
  • $ _ENV
  • $ _クッキー
  • $ _SESSION

$ GLOBALS :このスーパーグローバル変数は、グローバル変数にアクセスするために使用されます。

<?php    
$a = 10;    
function foo(){
    echo $GLOBALS['a'];
}    
//Which will print 10 Global Variable a
?>

$ _REQUEST :このSuperGlobal変数は、HTMLフォームから送信されたデータを収集するために使用されます。

<?php
if(isset($_REQUEST['user'])){
    echo $_REQUEST['user'];
}
//This will print value of HTML Field with name=user submitted using POST and/or GET MEthod
?>

$ _GET :このスーパーグローバル変数は、 getメソッドを使用してHTMLフォームから送信されたデータを収集するために使用されます。

<?php
if(isset($_GET['username'])){
    echo $_GET['username'];
}
//This will print value of HTML field with name username submitted using GET Method
?>

$ _POST :このスーパーグローバル変数は、 postメソッドを使用してHTMLフォームから送信されたデータを収集するために使用されます。

<?php
if(isset($_POST['username'])){
    echo $_POST['username'];
}
//This will print value of HTML field with name username submitted using POST Method
?>

$ _FILES :このスーパーグローバル変数は、アップロードされたファイルの情報をHTTP Postメソッドで保持します。

<?php
if($_FILES['picture']){
    echo "<pre>";
    print_r($_FILES['picture']);
    echo "</pre>";
}
/**
This will print details of the File with name picture uploaded via a form with method='post and with enctype='multipart/form-data'
Details includes Name of file, Type of File, temporary file location, error code(if any error occured while uploading the file) and size of file in Bytes.
Eg.

Array
(
    [picture] => Array
        (
            [0] => Array
                (
                    [name] => 400.png
                    [type] => image/png
                    [tmp_name] => /tmp/php5Wx0aJ
                    [error] => 0
                    [size] => 15726
                )
        )
)

*/
?>

$ _SERVER :このスーパーグローバル変数は、スクリプト、HTTPヘッダー、サーバーパスに関する情報を保持します。

<?php
    echo "<pre>";
    print_r($_SERVER);
    echo "</pre>";
    /**
    Will print the following details
    on my local XAMPP 
    Array
(
    [MIBDIRS] => C:/xampp/php/extras/mibs
    [MYSQL_HOME] => \xampp\mysql\bin
    [OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf
    [PHP_PEAR_SYSCONF_DIR] => \xampp\php
    [PHPRC] => \xampp\php
    [TMP] => \xampp\tmp
    [HTTP_HOST] => localhost
    [HTTP_CONNECTION] => keep-alive
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*;q=0.8
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8
    [PATH] => C:\xampp\php;C:\ProgramData\ComposerSetup\bin;
    [SystemRoot] => C:\Windows
    [COMSPEC] => C:\Windows\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    [WINDIR] => C:\Windows
    [SERVER_SIGNATURE] => Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12 Server at localhost Port 80
    [SERVER_SOFTWARE] => Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => ::1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => ::1
    [DOCUMENT_ROOT] => C:/xampp/htdocs
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => C:/xampp/htdocs
    [SERVER_ADMIN] => postmaster@localhost
    [SCRIPT_FILENAME] => C:/xampp/htdocs/abcd.php
    [REMOTE_PORT] => 63822
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /abcd.php
    [SCRIPT_NAME] => /abcd.php
    [PHP_SELF] => /abcd.php
    [REQUEST_TIME_FLOAT] => 1469374173.88
    [REQUEST_TIME] => 1469374173
)
*/
?>

$ _ENV :このスーパーグローバル変数シェル環境変数PHPが実行されている詳細。

$ _COOKIE :このSuperGlobal変数は、指定されたKeyでCookie値を取得するために使用されます。

<?php
$cookie_name = "data";
$cookie_value = "Foo Bar";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
}
else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}

/**
    Output
    Cookie 'data' is set!
    Value is: Foo Bar
*/
?>

$ _SESSION :このスーパーグローバル変数は、サーバーに格納されているセッション値の設定と取得に使用されます。

<?php
//Start the session
session_start();
/**
    Setting the Session Variables
    that can be accessed on different
    pages on save server.
*/
$_SESSION["username"] = "John Doe";
$_SESSION["user_token"] = "d5f1df5b4dfb8b8d5f";
echo "Session is saved successfully";

/**
    Output
    Session is saved successfully
*/
?>

Suberglobals説明

前書き

簡単に言えば、これらはスクリプト内のすべてのスコープで使用可能な変数です。

これは、それらを関数のパラメータとして渡す必要はなく、異なるスコープで利用できるようにコードブロックの外に格納する必要はないということです。

スーパーグローバルとは何ですか?

あなたがスーパーヒーローのようなものだと思っているなら、そうではありません。

PHPバージョン7.1.3では、9つの超大域変数があります。彼らは以下の通りです:

  • $GLOBALS - グローバルスコープで使用可能なすべての変数を参照します。
  • $_SERVER - サーバーおよび実行環境情報
  • $_GET - HTTP GET変数
  • $_POST - HTTP POST変数
  • $_FILES - HTTPファイルアップロード変数
  • $_COOKIE - HTTP Cookies
  • $_SESSION - セッション変数
  • $_REQUEST - HTTPリクエスト変数
  • $_ENV - 環境変数

ドキュメントを参照してください。

もっと教えて、もっと教えてください

私はグリースの参考にごめんなさい! リンク

これらのスーパーヒーローのグローバルについての説明の時間。

$GLOBALS

スクリプトのグローバルスコープで現在定義されているすべての変数への参照を含む連想配列。変数名は配列のキーです。

コード

$myGlobal = "global"; // declare variable outside of scope

function test()
{
    $myLocal = "local"; // declare variable inside of scope
    // both variables are printed
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

test(); // run function
// only $myGlobal is printed since $myLocal is not globally scoped
var_dump($myLocal);
var_dump($myGlobal);

出力

string 'local' (length=5)
string 'global' (length=6)
null
string 'global' (length=6)

上記の例では、 $myLocaltest()関数の中で宣言され、関数が閉じられた後に破棄されるため、2回目には表示されません。

グローバルになる

これを解決するには2つの方法があります。

オプション1: globalキーワード

function test()
{
    global $myLocal;
    $myLocal = "local";
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

globalキーワードは変数の接頭辞で、グローバルスコープの一部になります。

globalキーワードと同じステートメント内の変数には値を代入できないことに注意してください。したがって、なぜ私は下に値を割り当てなければならなかったのですか。 (新しい行と空白を削除すると可能ですが、 global $myLocal; $myLocal = "local" )とは思えません。

オプション2: $GLOBALS配列

function test()
{
    $GLOBALS["myLocal"] = "local";
    $myLocal = $GLOBALS["myLocal"];
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

この例では、 $GLOBAL["myLocal"]の値を$myLocalに割り当て$myLocal 、連想配列ではなく変数名を書く方が簡単だからです。

$_SERVER

$ _SERVERは、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。この配列のエントリは、Webサーバーによって作成されます。すべてのWebサーバーがこれらを提供する保証はありません。サーバーはいくつかを省略したり、ここにリストされていない他のものを提供することがあります。つまり、これらの変数の多くはCGI / 1.1仕様で説明されているので、それらを期待できるはずです。

これの出力例は次のとおりです(WAMPを使用してWindows PCで実行)

C:\wamp64\www\test.php:2:
array (size=36)
    'HTTP_HOST' => string 'localhost' (length=9)
    'HTTP_CONNECTION' => string 'keep-alive' (length=10)
    'HTTP_CACHE_CONTROL' => string 'max-age=0' (length=9)
    'HTTP_UPGRADE_INSECURE_REQUESTS' => string '1' (length=1)
    'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36' (length=110)
    'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' (length=74)
    'HTTP_ACCEPT_ENCODING' => string 'gzip, deflate, sdch, br' (length=23)
    'HTTP_ACCEPT_LANGUAGE' => string 'en-US,en;q=0.8,en-GB;q=0.6' (length=26)
    'HTTP_COOKIE' => string 'PHPSESSID=0gslnvgsci371ete9hg7k9ivc6' (length=36)
    'PATH' => string 'C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;E:\Program Files\ATI Technologies\ATI.ACE\Core-Static;E:\Program Files\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\Intel(R) Managemen'... (length=1169)
    'SystemRoot' => string 'C:\WINDOWS' (length=10)
    'COMSPEC' => string 'C:\WINDOWS\system32\cmd.exe' (length=27)
    'PATHEXT' => string '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY' (length=57)
    'WINDIR' => string 'C:\WINDOWS' (length=10)
    'SERVER_SIGNATURE' => string '<address>Apache/2.4.23 (Win64) PHP/7.0.10 Server at localhost Port 80</address>' (length=80)
    'SERVER_SOFTWARE' => string 'Apache/2.4.23 (Win64) PHP/7.0.10' (length=32)
    'SERVER_NAME' => string 'localhost' (length=9)
    'SERVER_ADDR' => string '::1' (length=3)
    'SERVER_PORT' => string '80' (length=2)
    'REMOTE_ADDR' => string '::1' (length=3)
    'DOCUMENT_ROOT' => string 'C:/wamp64/www' (length=13)
    'REQUEST_SCHEME' => string 'http' (length=4)
    'CONTEXT_PREFIX' => string '' (length=0)
    'CONTEXT_DOCUMENT_ROOT' => string 'C:/wamp64/www' (length=13)
    'SERVER_ADMIN' => string '[email protected]' (length=29)
    'SCRIPT_FILENAME' => string 'C:/wamp64/www/test.php' (length=26)
    'REMOTE_PORT' => string '5359' (length=4)
    'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
    'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
    'REQUEST_METHOD' => string 'GET' (length=3)
    'QUERY_STRING' => string '' (length=0)
    'REQUEST_URI' => string '/test.php' (length=13)
    'SCRIPT_NAME' => string '/test.php' (length=13)
    'PHP_SELF' => string '/test.php' (length=13)
    'REQUEST_TIME_FLOAT' => float 1491068771.413
    'REQUEST_TIME' => int 1491068771

そこに入ることがたくさんあるので、私は下のいくつかの重要なものを選ぶでしょう。あなたがそれらについてすべて読むことを望むなら、ドキュメンテーションのインデックスセクションを参照してください。

私はそれらをすべて1日以下で追加するかもしれません。または、誰かが下のそれらの良い説明を編集して追加することができますか? ヒント、ヒント ;)

以下の説明では、URLがhttp://www.example.com/index.phpであると仮定します

  • HTTP_HOST - ホストアドレス。
    これはwww.example.comを返します
  • HTTP_USER_AGENT - ユーザエージェントの内容。これはオペレーティングシステムを含むクライアントのブラウザに関するすべての情報を含む文字列です。
  • HTTP_COOKIE - 連結ストリング内のすべてのクッキーで、セミコロン区切り文字を使用します。
  • SERVER_ADDR - 現在のスクリプトが実行されているサーバーのIPアドレス。
    これは93.184.216.34を返し93.184.216.34
  • PHP_SELF - 現在実行されているスクリプトのファイル名。ドキュメントルートからの相対PHP_SELFです。
    これは/index.phpを返し/index.php
  • REQUEST_TIME_FLOAT - 要求の開始のタイムスタンプ。マイクロ秒の精度です。 PHP 5.4.0から利用可能です。
  • REQUEST_TIME - 要求の開始のタイムスタンプ。 PHP 5.1.0以降で利用可能です。

$_GET

URLパラメータを介して現在のスクリプトに渡される変数の連想配列。

$_GETは、すべてのURLパラメータを含む配列です。これらは何の後にあるのですか? URLに

例としてhttp://www.example.com/index.php?myVar=myValを使用します 。このURLからのこの情報は、 $_GET["myVar"]形式でアクセスすることで取得でき、その結果はmyValます。

読書が気に入らない人には、いくつかのコードを使用する。

// URL = http://www.example.com/index.php?myVar=myVal
echo $_GET["myVar"] == "myVal" ? "true" : "false"; // returns "true"

上記の例では、 3項演算子を使用しています。

これは、 $_GETスーパーグローバルを使用してURLから値にアクセスする方法を示しています。

もう一つの例です! うんざりする

// URL = http://www.example.com/index.php?myVar=myVal&myVar2=myVal2
echo $_GET["myVar"]; // returns "myVal"
echo $_GET["myVar2"]; // returns "myVal2"

アンパサンド( & )文字で複数の変数をURLで区切って送ることができます。

セキュリティリスク
機密情報をURL経由で送信しないようにすることは非常に重要です。この情報はコンピュータの履歴に残っており、そのブラウザにアクセスできるすべてのユーザーに表示されます。

$_POST

要求のHTTP Content-Typeとしてapplication / x-www-form-urlencodedまたはmultipart / form-dataを使用するときに、HTTP POSTメソッドを介して現在のスクリプトに渡される変数の連想配列。

ある場所から別の場所にデータが送信されるという点で、 $_GETと非常によく似ています。

私は例にまっすぐ進むことから始めます。 (これは、フォームが入っているページに情報を送るので、私はアクション属性を省略しました)。

<form method="POST">
    <input type="text" name="myVar" value="myVal" />
    <input type="submit" name="submit" value="Submit" />
</form>

上記は、データを送信できる基本的な形式です。実際の環境では、 value属性は設定されず、フォームは空白になります。これは、ユーザーが入力した情報を送信します。

echo $_POST["myVar"]); // returns "myVal"

セキュリティリスク
POSTを介してデータを送信することも安全ではありません。 HTTPSを使用すると、データがより安全に保たれます。

$_FILES

現在のスクリプトにHTTP POSTメソッドを使用してアップロードされた項目の連想配列。この配列の構造は、 POSTメソッドのアップロードセクションで概説されています。

基本的なフォームから始めましょう。

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myVar" />
    <input type="submit" name="Submit" />
</form>

私はaction属性を省略しました(もう一度!)。また、 enctype="multipart/form-data"を追加しました。これはファイルのアップロードを扱うフォームにとって重要です。

// ensure there isn't an error
if ($_FILES["myVar"]["error"] == UPLOAD_ERR_OK)
{
    $folderLocation = "myFiles"; // a relative path. (could be "path/to/file" for example)
    
    // if the folder doesn't exist then make it
    if (!file_exists($folderLocation)) mkdir($folderLocation);

    // move the file into the folder
    move_uploaded_file($_FILES["myVar"]["tmp_name"], "$folderLocation/" . basename($_FILES["myVar"]["name"]));
}

これは、1つのファイルをアップロードするために使用されます。場合によっては複数のファイルをアップロードすることもできます。属性はそれのために存在し、 multipleと呼ばれmultiple
まさに何かのための属性があります。 ごめんなさい

以下に、複数のファイルを送信するフォームの例を示します。

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myVar[]" multiple="multiple" />
    <input type="submit" name="Submit" />
</form>

ここで行った変更に注意してください。ほんのわずかしかありません。

  • input名には角括弧が付きます。これは、ファイルの配列になっているため、選択したファイルの配列を作成するようにフォームに指示しているためです。角括弧を省略すると、後者のほとんどのファイルが$_FILES["myVar"]に設定され$_FILES["myVar"]
  • multiple="multiple"属性です。これは、ユーザーが複数のファイルを選択できることをブラウザに伝えるだけです。
$total = isset($_FILES["myVar"]) ? count($_FILES["myVar"]["name"]) : 0; // count how many files were sent
// iterate over each of the files
for ($i = 0; $i < $total; $i++)
{
    // there isn't an error
    if ($_FILES["myVar"]["error"][$i] == UPLOAD_ERR_OK)
    {
        $folderLocation = "myFiles"; // a relative path. (could be "path/to/file" for example)
        
        // if the folder doesn't exist then make it
        if (!file_exists($folderLocation)) mkdir($folderLocation);

        // move the file into the folder
        move_uploaded_file($_FILES["myVar"]["tmp_name"][$i], "$folderLocation/" . basename($_FILES["myVar"]["name"][$i]));
    }
    // else report the error
    else switch ($_FILES["myVar"]["error"][$i])
    {
        case UPLOAD_ERR_INI_SIZE:
            echo "Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.";
            break;
        case UPLOAD_ERR_FORM_SIZE:
            echo "Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
            break;
        case UPLOAD_ERR_PARTIAL:
            echo "Value: 3; The uploaded file was only partially uploaded.";
            break;
        case UPLOAD_ERR_NO_FILE:
            echo "Value: 4; No file was uploaded.";
            break;
        case UPLOAD_ERR_NO_TMP_DIR:
            echo "Value: 6; Missing a temporary folder. Introduced in PHP 5.0.3.";
            break;
        case UPLOAD_ERR_CANT_WRITE:
            echo "Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.";
            break;
        case UPLOAD_ERR_EXTENSION:
            echo "Value: 8; A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";
            break;
        
        default:
            echo "An unknown error has occured.";
            break;
    }
}

これは非常に単純な例であり、許可されていないファイル拡張子やPHPコードで指定されたファイル(SQLインジェクションのPHP相当)などの問題は処理しません。 ドキュメントを参照してください。

最初のプロセスは、ファイルがあるかどうかを調べることです。存在する場合は、それらの合計数を$totalます。

forループを使用すると、 $_FILES配列の反復が可能になり、各項目に一度に1つずつアクセスできます。そのファイルに問題がない場合は、if文がtrueであり、単一のファイルアップロードのコードが実行されます。
問題が発生すると、スイッチブロックが実行され、その特定のアップロードのエラーに従ってエラーが表示されます。

HTTPクッキーを介して現在のスクリプトに渡される変数の連想配列。

クッキーはデータを含む変数で、クライアントのコンピュータに保存されます。

前述のスーパーグローバルとは異なり、クッキーは関数を使用して作成する必要があります(値を代入しないでください)。大会は以下のとおりです。

setcookie("myVar", "myVal", time() + 3600);

この例では、クッキーに名前が指定されています(この例では "myVar")、値が与えられます(この例では "myVal"ですが、変数を渡してその値をクッキーに割り当てることができます)。有効期限が与えられます(この例では3600秒が1分なので1時間です)。

異なるクッキーを作成するための規約にもかかわらず、他のクッキーと同じ方法でアクセスされます。

echo $_COOKIE["myVar"]; // returns "myVal"

クッキーを破壊するには、 setcookieもう一度呼び出す必要がありますが、有効期限は過去の任意の時間に設定されます 。下記参照。

setcookie("myVar", "", time() - 1);
var_dump($_COOKIE["myVar"]); // returns null 

これにより、クッキーの設定が解除され、クライアントコンピュータからクッキーが削除されます。

$_SESSION

現在のスクリプトで使用可能なセッション変数を含む連想配列。これがどのように使用されるかの詳細については、 セッション関数のドキュメントを参照してください。

セッションは、サーバー側以外のCookieによく似ています。

セッションを使用するには、セッションの利用を可能にするために、スクリプトの先頭にsession_start()を含める必要があります。

セッション変数を設定することは、他の変数を設定することと同じです。以下の例を参照してください。

$_SESSION["myVar"] = "myVal";

セッションを開始するとき、ランダムIDはクッキーとして設定され、 "PHPSESSID"と呼ばれ、その現在のセッションのセッションIDを含みます。これは、 session_id()関数を呼び出すことでアクセスできます。

unset($_SESSION["myVar"])がその変数を破壊するように、 unset関数を使用してセッション変数を破壊することは可能です。
別の方法は、 session_destory()を呼び出すことです。これにより、セッション全体が破棄され、 すべてのセッション変数が存在しなくなります。

$_REQUEST

デフォルトで$_GET$_POST$_COOKIEの内容を含む連想配列。

PHPのドキュメントにあるように、これは$_GET$_POST$_COOKIEを1つの変数に$_COOKIEたものに$_COOKIE

これらの配列の3つすべてが同じ名前のインデックスを持つことが可能であるため、 php.iniファイルにrequest_orderという設定があり、3つのうちどれが優先されるかを指定できます。
それが設定されている場合たとえば、 "GPC" 、その後の値は$_COOKIEそれが意味を左から右に読まれるように、使用される$_REQUESTその値を設定します$_GET 、その後、 $_POSTした後、 $_COOKIEそして以来、 $_COOKIEにある値であり、その最後である$_REQUEST
この質問を参照してください。

$_ENV

環境メソッドを介して現在のスクリプトに渡される変数の連想配列。

これらの変数は、PHPパーサーが動作している環境からPHPのグローバル名前空間にインポートされます。多くのものは、PHPが動作しているシェルによって提供され、異なるシステムでは異なる種類のシェルが動作する可能性が高いため、決定的なリストは不可能です。定義された環境変数のリストについては、シェルのドキュメントを参照してください。

他の環境変数には、PHPがサーバモジュールとして動作しているのかCGIプロセッサとして動作しているのかに関係なくCGI変数があります。

$_ENV格納されている$_ENVは、PHPが実行されている環境からのものです。

$_ENVは、 php.iniが許可している場合にのみ設定されます。
$_ENVが設定されていない理由の詳細については、 この回答を参照してください。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow