PHP Globala variabler - Hyperglobala variabler

Hyperglobala variabler introducerades i PHP 4.1.0 och är inbyggda variabler som alltid är tillgängliga i hela scopet.

PHP Globala variabler - Hyperglobala variabler

Många fördefinierade variabler i PHP är "hyperglobala", vilket innebär att de är tillgängliga i hela skriptets omfattning. Det är inte nödvändigt att köra global $variable; för att komma åt dem i funktioner eller metoder.

Dessa hyperglobala variabler är:

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

Denna sektion kommer att presentera några hyperglobala variabler och kommer att förklara andra hyperglobala variabler i senare kapitel.

$GLOBALS — En referens till alla tillgängliga variabler i den globala scopen

Den globala variabeln $GLOBALS används för att komma åt globala variabler i PHP-skriptet (från funktioner eller metoder).

PHP lagrar alla globala variabler i en array som heter $GLOBALS[index]. Variabelns namn är arrayens nyckel.

Följande exempel visar hur man använder den hyperglobala variabeln $GLOBALS:

Exempel

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

Kör exempel

I det föregående exemplet, eftersom z är en variabel i $GLOBALS-arrayen, kan den också nås utanför funktionen.

PHP $_SERVER

Den hyperglobala variabeln $_SERVER sparar information om rubriker, sökvägar och skriptplaceringar.

Följande exempel visar hur man använder vissa element i $_SERVER:

Exempel

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

Kör exempel

Nedan listas de viktigaste element som du kan komma åt i $_SERVER:

Element/kod Beskrivning
$_SERVER['PHP_SELF'] Returnerar namnet på filen som körs skriptet.
$_SERVER['GATEWAY_INTERFACE'] Returnerar versionen av CGI-standard som servern använder.
$_SERVER['SERVER_ADDR'] Returnerar IP-adressen till den server där skriptet körs.
$_SERVER['SERVER_NAME'] Returnerar serverns värdnamn där skriptet körs (t.ex. www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Returnerar serverns identifieringssträng (t.ex. Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Returnerar namnet och versionen på det kommunikationsprotokoll som används av servern (t.ex. HTTP/1.0).
$_SERVER['REQUEST_METHOD'] Returnerar namnet och versionen på kommunikationsprotokollet som användes för att anropa sidan (t.ex. POST).
$_SERVER['REQUEST_TIME'] Returnerar tidsstämpeln vid början av förfrågan (t.ex. 1577687494).
$_SERVER['QUERY_STRING'] Returnerar frågesträngen, om sidan nås via en frågesträng.
$_SERVER['HTTP_ACCEPT'] Returnerar alla förfrågningshuvuden från den aktuella förfrågan.
$_SERVER['HTTP_ACCEPT_CHARSET'] Returnerar Accept_Charset-huvudet från den aktuella förfrågan (t.ex. utf-8, ISO-8859-1)
$_SERVER['HTTP_HOST'] Returnerar Host-huvudet från den aktuella förfrågan.
$_SERVER['HTTP_REFERER'] Returnerar den fullständiga URL:en för den aktuella sidan (pålitlöst, eftersom inte alla användaragenter stöder det).
$_SERVER['HTTPS'] Kontrollerar om skriptet anropas via säker HTTP-protokoll.
$_SERVER['REMOTE_ADDR'] Returnerar IP-adressen för användaren som visar den aktuella sidan.
$_SERVER['REMOTE_HOST'] Returnerar värdnamnet för användaren som visar den aktuella sidan.
$_SERVER['REMOTE_PORT'] Returnerar portnumret som används av användarens maskin för att ansluta till webbservern.
$_SERVER['SCRIPT_FILENAME'] Returnerar den absoluta sökvägen till det aktuella skriptet.
$_SERVER['SERVER_ADMIN'] Detta värde specificerar SERVER_ADMIN-parametern i Apache-serverns konfigurationsfil.
$_SERVER['SERVER_PORT'] Porten som webbservern använder. Standardvärdet är "80".
$_SERVER['SERVER_SIGNATURE'] Returnerar serverns version och virtuella värdnamn.
$_SERVER['PATH_TRANSLATED'] Det grundläggande sökvägsbaserat på filsystemet där det aktuella skriptet finns (inte dokumentroot-katalogen).
$_SERVER['SCRIPT_NAME'] Returnerar sökvägen till det aktuella skriptet.
$_SERVER['SCRIPT_URI'] Returnerar URI:n för den aktuella sidan.

PHP $_REQUEST

PHP $_REQUEST används för att samla in data från HTML-formulär som skickats.

Detta exempel visar en form som innehåller inmatningsfält och en submit-knapp. När användaren genom att klicka på submit-knappen skickar formulardata, skickas formulardata till skriptfilen som specificerats i action-attributet för <form>-taggen. I detta exempel specificerar vi filen själv för att hantera formulardata. Om du behöver använda en annan PHP-fil för att hantera formulardata, ändra till det valda filnamnet. Därefter kan vi använda den superglobala variabeln $_REQUEST för att samla in värdena från input-fälten:

Exempel

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Namn: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
</body>
</html>

Kör exempel

PHP $_POST

PHP $_POST används广泛 för att samla in formulardata efter att en HTML-form med method="post" har skickats. $_POST används också ofta för att överföra variabler.

Detta exempel visar en form som innehåller inmatningsfält och en submit-knapp. När användaren klickar på submit-knappen för att skicka data, skickas formulardata till filen som specificerats i action-attributet för <form>-taggen. I detta exempel specificerar vi filen själv för att hantera formulardata. Om du vill använda en annan PHP-sida för att hantera formulardata, ändra till det valda filnamnet. Därefter kan vi använda den globala variabeln $_POST för att samla in värdena från inmatningsfälten:

Exempel

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Namn: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_POST['fname'];
echo $name; 
?>
</body>
</html>

Kör exempel

PHP $_GET

PHP $_GET kan också användas för att samla in formulärdata som skickas efter HTML-formulär (method="get").

$_GET kan också samla in data som skickas via URL.

Anta att vi har en sida som innehåller hyperlänkar med parametrar:

<html>
<body>
<a href="test_get.php?subject=PHP&web=codew3c.com">Testa $GET</a>
</body>
</html>

När användaren klickar på länken "Testa $GET", skickas parametrarna "subject" och "web" till "test_get.php", och du kan sedan komma åt dessa värden via $_GET i "test_get.php".

Följande exempel är kod från "test_get.php":

Exempel

<html>
<body>
<?php 
echo "Lär dig om " . $_GET['web'] . " i " . $_GET['subject'];
?>
</body>
</html>

Kör exempel

Tips:Du kommer att PHP Formulär Lär dig mer om $_POST och $_GET i detta avsnitt.