Sök…


Introduktion

Superglobals är inbyggda variabler som alltid finns tillgängliga i alla omfattningar.

Flera fördefinierade variabler i PHP är "superglobals", vilket innebär att de är tillgängliga i alla omfattningar i ett skript. Det finns inget behov av att göra en global $variable; för att få åtkomst till dem inom funktioner eller metoder.

PHP5 SuperGlobals

Nedan finns PHP5 SuperGlobals

  • $ GLOBALS
  • $ _REQUEST
  • $ _GET
  • $ _POST
  • $ _FILES
  • $ _SERVER
  • $ _ENV
  • $ _COOKIE
  • $ _SESSION

$ GLOBALS : Denna SuperGlobal Variable används för att komma åt globala variabler.

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

$ _REQUEST : Denna SuperGlobal-variabel används för att samla in data som skickas in i ett HTML-formulär.

<?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 : Denna SuperGlobal-variabel används för att samla in data som skickats in i HTML-formulär med get metoden.

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

$ _POST : Denna SuperGlobal-variabel används för att samla in data som skickas in via HTML-formulär med post metod.

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

$ _FILES : Denna SuperGlobal-variabel innehåller information om uppladdade filer via HTTP Post-metoden.

<?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 : Denna SuperGlobal-variabel innehåller information om skript, HTTP-rubriker och servervägar.

<?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 : Denna SuperGlobal Variable Shell Miljö Variabel detaljer under vilken PHP körs.

$ _COOKIE : Denna SuperGlobal-variabel används för att hämta kakevärde med given tangent.

<?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 : Denna SuperGlobal-variabel används för att ställa in och hämta sessionvärde som är lagrat på servern.

<?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 förklarade

Introduktion

Enkelt uttryckt, detta är variabler som finns tillgängliga i alla omfattningar i dina skript.

Det betyder att det inte finns något behov att skicka dem som parametrar i dina funktioner, eller lagra dem utanför ett kodblock för att ha dem tillgängliga i olika tillämpningsområden.

Vad är en superglobal ??

Om du tänker att det här är som superhjältar - så är de inte.

Från PHP version 7.1.3 finns det 9 superglobalvariabler. De är som följer:

  • $GLOBALS - $GLOBALS alla tillgängliga variabler i global omfattning
  • $_SERVER - $_SERVER och exekveringsmiljö
  • $_GET - HTTP GET-variabler
  • $_POST - HTTP POST-variabler
  • $_FILES - HTTP-filuppladdningsvariabler
  • $_COOKIE - HTTP-kakor
  • $_SESSION - $_SESSION
  • $_REQUEST - HTTP Begär variabler
  • $_ENV - $_ENV

Se dokumentationen .

Berätta mer, berätta mer

Jag är ledsen för fettreferensen! Länk

Dags för en förklaring på dessa super hjältar Globals.

$GLOBALS

En associerande grupp som innehåller referenser till alla variabler som för närvarande definieras i skriptets globala omfattning. Variabelns namn är nycklarna i matrisen.

Koda

$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);

Produktion

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

I exemplet $myLocal visas inte $myLocal andra gången eftersom det deklareras i test() och förstörs sedan efter att funktionen stängts.

Att bli global

För att avhjälpa detta finns det två alternativ.

Alternativ ett: global nyckelord

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

Det global nyckelordet är ett prefix på en variabel som tvingar det att ingå i det globala omfånget.

Observera att du inte kan tilldela ett värde till en variabel i samma uttalande som det globala nyckelordet. Därför varför jag var tvungen att tilldela ett värde under. (Det är möjligt om du tar bort nya rader och mellanslag men jag tycker inte att det är snyggt. global $myLocal; $myLocal = "local" ).

Alternativ två: $GLOBALS array

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

I det här exemplet tilldelade jag $myLocal värdet på $GLOBAL["myLocal"] eftersom jag tycker det är lättare att skriva ett variabelt namn snarare än det associerande arrayet.

$_SERVER

$ _SERVER är en matris som innehåller information som rubriker, sökvägar och skriptplatser. Posterna i den här arrayen skapas av webbservern. Det finns ingen garanti för att varje webbserver kommer att tillhandahålla någon av dessa; servrar kan utelämna vissa eller tillhandahålla andra som inte listas här. Som sagt, ett stort antal av dessa variabler redovisas i CGI / 1.1-specifikationen , så du bör kunna förvänta dig dessa.

Ett exempel på detta kan vara följande (kör på min Windows PC med WAMP)

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

Det finns mycket att ta in där så jag kommer att välja ut några viktiga nedan. Om du vill läsa om dem alla, se dokumentets avsnitt i dokumentationen.

Jag kan lägga till dem alla under en dag. Eller någon kan redigera och lägga till en bra förklaring av dem nedan? Tips, ledtråd ;)

För alla förklaringar nedan, antar att webbadressen är http://www.example.com/index.php

  • HTTP_HOST - HTTP_HOST .
    Detta skulle returnera www.example.com
  • HTTP_USER_AGENT - Innehållet i användaragenten. Detta är en sträng som innehåller all information om klientens webbläsare, inklusive operativsystem.
  • HTTP_COOKIE - Alla kakor i en sammankopplad sträng, med en halvkolonnavgränsare.
  • SERVER_ADDR - IP-adressen till servern, av vilken det aktuella skriptet körs.
    Detta skulle returnera 93.184.216.34
  • PHP_SELF - PHP_SELF på det nuvarande exekverade skriptet i förhållande till dokumentroten.
    Detta skulle returnera /index.php
  • REQUEST_TIME_FLOAT - Tidsstämpeln för början av begäran, med mikrosekund precision. Finns sedan PHP 5.4.0.
  • REQUEST_TIME - Tidsstämpeln för början av begäran. Finns sedan PHP 5.1.0.

$_GET

En associativ matris med variabler som skickas till det aktuella skriptet via URL-parametrarna.

$_GET är en matris som innehåller alla URL-parametrar; det här är vad som är efter? i URL: n.

Använd http://www.example.com/index.php?myVar=myVal som exempel. Denna information från denna URL kan erhållas genom att komma åt i detta format $_GET["myVar"] och resultatet av detta blir myVal .

Att använda någon kod för de som inte gillar att läsa.

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

Ovanstående exempel använder den ternära operatören .

Detta visar hur du kan komma åt värdet från URL: en med $_GET superglobal.

Nu ytterligare ett exempel! flämtning

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

Det är möjligt att skicka flera variabler via webbadressen genom att separera dem med ett karaktärsnitt ( & ).

Säkerhetsrisk
Det är mycket viktigt att inte skicka någon känslig information via URL: en, eftersom den kommer att stanna i datorns historia och kommer att vara synlig för alla som kan komma åt den webbläsaren.

$_POST

En associativ matris med variabler som skickas till det aktuella skriptet via HTTP POST-metoden när du använder applikation / x-www-form-urlenkodad eller multipart / formdata som HTTP-innehållstyp i begäran.

Mycket lik $_GET i att data skickas från en plats till en annan.

Jag börjar med att gå direkt in i ett exempel. (Jag har utelämnat åtgärdsattributet eftersom det kommer att skicka informationen till sidan som formuläret finns på).

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

Ovan är ett grundläggande formulär för vilket data kan skickas. I en verklig miljö skulle value attribut inte ställas in vilket innebär att formen skulle vara tom. Detta skickar sedan den information som användaren anger.

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

Säkerhetsrisk
Att skicka data via POST är inte heller säkert. Att använda HTTPS kommer att säkerställa att data hålls säkrare.

$_FILES

Ett associerande array av objekt som laddats upp till det aktuella skriptet via HTTP POST-metoden. Strukturen för denna grupp visas i avsnittet för uppladdningar av POST-metoden .

Låt oss börja med en grundform.

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

Observera att jag utelämnade action attribut (igen!). Jag har också lagt till enctype="multipart/form-data" , detta är viktigt för alla former som kommer att hantera filuppladdningar.

// 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"]));
}

Detta används för att ladda upp en fil. Ibland kanske du vill ladda upp mer än en fil. Det finns ett attribut för det, det kallas multiple .
Det finns ett attribut för nästan vad som helst . Jag är ledsen

Nedan är ett exempel på ett formulär som skickar in flera filer.

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

Observera ändringarna som görs här; det finns bara ett fåtal.

  • input har fyrkantiga parenteser. Detta beror på att det nu är en matris med filer och så vi berättar formuläret att göra en matris med de valda filerna. Om du undanröjer de fyrkantiga parenteserna kommer den senare filen att ställas in till $_FILES["myVar"] .
  • Attributen multiple="multiple" . Detta berättar bara för webbläsaren att användare kan välja mer än en fil.
$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;
    }
}

Detta är ett mycket enkelt exempel och hanterar inte problem som filändelser som inte är tillåtna eller filer namngivna med PHP-kod (som en PHP-ekvivalent för en SQL-injektion). Se dokumentationen .

Den första processen är att kontrollera om det finns några filer, och i så fall ställa in det totala antalet av dem till $total .

Med hjälp av for-loopen kan en iteration av $_FILES arrayen komma åt varje objekt en åt gången. Om den filen inte stöter på ett problem körs if-satsen och koden från den enda filuppladdningen körs.
Om ett problem stöds utförs switchblocket och ett fel presenteras i enlighet med felet för den specifika uppladdningen.

En associativ matris med variabler som skickas till det aktuella skriptet via HTTP-kakor.

Cookies är variabler som innehåller data och lagras på klientens dator.

Till skillnad från de ovannämnda superglobalerna måste cookies skapas med en funktion (och inte tilldela ett värde). Konventet är nedan.

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

I det här exemplet anges ett namn för cookien (i det här exemplet är det "myVar"), ett värde ges (i det här exemplet är det "myVal", men en variabel kan skickas för att tilldela dess värde till cookien), och sedan ges en utgångstid (i detta exempel är det en timme eftersom 3600 sekunder är en minut).

Trots att konventionen för att skapa en cookie är annorlunda har den åtkomst på samma sätt som de andra.

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

För att förstöra en cookie måste setcookie igen, men giltighetstidens utgång är inställd på när som helst tidigare. Se nedan.

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

Detta kommer att avaktivera cookies och ta bort dem från klientens dator.

$_SESSION

En associerande grupp som innehåller sessionvariabler tillgängliga för det aktuella skriptet. Se funktioner Session dokumentation för mer information om hur detta används.

Sessioner är ungefär som cookies förutom att de är serversidan.

För att använda sessioner måste du inkludera session_start() högst upp i dina skript för att göra det möjligt att använda sessioner.

Ställa in en sessionvariabel är samma som att ställa in någon annan variabel. Se exempel nedan.

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

När du startar en session ställs ett slumpmässigt ID in som en cookie och kallas "PHPSESSID" och kommer att innehålla session-ID för den aktuella sessionen. Detta kan nås genom att ringa session_id() -funktionen.

Det är möjligt att förstöra unset hjälp av unset funktionen (så att unset($_SESSION["myVar"]) skulle förstöra den variabeln).
Alternativet är att ringa session_destory() . Detta förstör hela sessionen vilket innebär att alla sessionvariabler inte längre existerar.

$_REQUEST

En associerande grupp som som standard innehåller innehållet i $_GET , $_POST och $_COOKIE .

Som det framgår av PHP-dokumentationen är detta bara en samling av $_GET , $_POST och $_COOKIE allt i en variabel.

Eftersom det är möjligt för alla dessa arrayer att ha ett index med samma namn finns det en inställning i php.ini filen som heter request_order som kan ange vilken av de tre som har företräde.
Till exempel, om det ställdes till "GPC" , kommer värdet på $_COOKIE att användas, eftersom det läses från vänster till höger, vilket betyder att $_REQUEST kommer att sätta sitt värde till $_GET , sedan $_POST och sedan $_COOKIE och eftersom $_COOKIE är sist är det värdet som är i $_REQUEST .
Se den här frågan .

$_ENV

En associativ matris med variabler som skickas till det aktuella skriptet via miljömetoden.

Dessa variabler importeras till PHP: s globala namnutrymme från den miljö som PHP-parsaren körs under. Många tillhandahålls av skalet under vilket PHP körs och olika system förmodligen kör olika slags skal, en definitiv lista är omöjlig. Se dokumentets skal för en lista med definierade miljövariabler.

Andra miljövariabler inkluderar CGI-variabler, placerade där oavsett om PHP körs som en servermodul eller CGI-processor.

Allt som lagras inom $_ENV kommer från miljön från vilken PHP körs in.

$_ENV endast om php.ini tillåter det.
Se detta svar för mer information om varför $_ENV inte är befolkat.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow