PHP globale variabelen - Hyperglobale variabelen

Hyperglobale variabelen werden geïntroduceerd in PHP 4.1.0 en zijn altijd beschikbaar in de gehele scope.

PHP globale variabelen - Hyperglobale variabelen

Veel vooraf gedefinieerde variabelen in PHP zijn 'hyperglobaal', wat betekent dat ze in de gehele scope van een script beschikbaar zijn. Je hoeft geen global $variable; uit te voeren in functies of methoden om toegang te krijgen tot deze.

Deze hyperglobale variabelen zijn:

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

Deze sectie zal enkele hyperglobale variabelen introduceren en zal andere hyperglobale variabelen later bespreken.

$GLOBALS - Referentie naar alle variabelen beschikbaar in de globale scope

Deze globale variabele $GLOBALS wordt gebruikt om globale variabelen in elke locatie van een PHP-script te bereiken (ook van functies of methoden).

PHP slaat alle globale variabelen op in een array genaamd $GLOBALS[index]. De naam van de variabele is de sleutel van de array.

Dit voorbeeld toont hoe je de hyperglobale variabele $GLOBALS kunt gebruiken:

Voorbeeld

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

Uitvoer voorbeeld

In het bovenstaande voorbeeld kan z ook buiten de functie worden bereikt, omdat z een variabele is in de $GLOBALS-array.

PHP $_SERVER

Deze hyperglobale variabele $_SERVER bewaart informatie over headers, paden en scriptlocaties.

Dit voorbeeld toont hoe je bepaalde elementen van $_SERVER kunt gebruiken:

Voorbeeld

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

Uitvoer voorbeeld

echo "<br>";

echo $_SERVER['SCRIPT_NAME']; De tabel hieronder lijst de belangrijkste elementen op die u kunt bereiken in $_SERVER:
Element/codering Beschrijving
$_SERVER['PHP_SELF'] Geef de naam van het bestand terug waarop het huidige script wordt uitgevoerd.
$_SERVER['GATEWAY_INTERFACE'] Geef de versie van het CGI-protocol dat door de server wordt gebruikt terug.
$_SERVER['SERVER_ADDR'] Geef het IP-adres van de server waarop het huidige script draait terug.
$_SERVER['SERVER_NAME'] Geef de hostnaam van de server waarop het huidige script draait terug (bijvoorbeeld www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Geef de serveridentificatiesstring terug (bijvoorbeeld Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Geef de naam en versie van het communicatieprotocol van de aanvraag terug bij het bezoeken van de pagina (bijvoorbeeld 'HTTP/1.0').
$_SERVER['REQUEST_TIME'] Geef de timestamp van het begin van de aanvraag terug (bijvoorbeeld 1577687494).
$_SERVER['QUERY_STRING'] Geef de query string terug als deze pagina via de query string wordt bereikt.
$_SERVER['HTTP_ACCEPT'] Geef de aanvraagkop van de huidige aanvraag terug.
$_SERVER['HTTP_ACCEPT_CHARSET'] Geef de Accept_Charset-koptekst terug van de huidige aanvraag (bijvoorbeeld utf-8, ISO-8859-1).
$_SERVER['HTTP_HOST'] Geef de Host-koptekst terug van de huidige aanvraag.
$_SERVER['HTTP_REFERER'] Geef de volledige URL van de huidige pagina terug (niet betrouwbaar, omdat niet alle gebruikersagenten dit ondersteunen).
$_SERVER['HTTPS'] Of welk veilig HTTP protocol wordt de script geraadpleegd?
$_SERVER['REMOTE_ADDR'] Geef het IP-adres van de gebruiker die de huidige pagina bekijkt terug.
$_SERVER['REMOTE_HOST'] Geef de naam van de host van de gebruiker die de huidige pagina bekijkt terug.
$_SERVER['REMOTE_PORT'] Geef de poort terug die door de gebruiker op de computer wordt gebruikt om verbinding te maken met de webserver.
$_SERVER['SCRIPT_FILENAME'] Geef het absolute pad van het huidige uitvoerende script terug.
$_SERVER['SERVER_ADMIN'] Deze waarde geeft aan welk SERVER_ADMIN parameter in het Apache-serverconfiguratiebestand is ingesteld.
$_SERVER['SERVER_PORT'] De poort die door de webserver wordt gebruikt. De standaardwaarde is "80".
$_SERVER['SERVER_SIGNATURE'] Geef de serverversie en de naam van de virtuele host terug.
$_SERVER['PATH_TRANSLATED'] De basispad van het bestandssysteem waarin het huidige script zich bevindt (niet het documentroot-pad).
$_SERVER['SCRIPT_NAME'] Geef het pad van de huidige script terug.
$_SERVER['SCRIPT_URI'] Geef de URI van de huidige pagina terug.

PHP $_REQUEST

PHP $_REQUEST wordt gebruikt om de gegevens van een HTML-formulier in te dienen.

Dit voorbeeld toont een formulier dat bestaat uit invoervelden en een submit-knop. Wanneer de gebruiker door op de submit-knop te klikken de formuliergegevens indient, worden de formuliergegevens naar het script gestuurd dat wordt gespecificeerd in de action-eigenschap van de <form>-tag. In dit voorbeeld specificeren we het bestand zelf om de formuliergegevens te verwerken. Als je een andere PHP-bestand wilt gebruiken om de formuliergegevens te verwerken, wijzig dan het bestand in de naam van je keuze. Vervolgens kunnen we de superglobale variabele $_REQUEST gebruiken om de waarden van de input-velden te verzamelen:

Voorbeeld

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

Uitvoer voorbeeld

PHP $_POST

PHP $_POST wordt veel gebruikt om de gegevens van een HTML-formulier dat de submit-methode "post" gebruikt te verzamelen. $_POST wordt ook vaak gebruikt om variabelen door te geven.

Dit voorbeeld toont een formulier dat bestaat uit invoervelden en een submit-knop. Wanneer de gebruiker op de submit-knop klikt om de gegevens in te dienen, worden de formuliergegevens naar het bestand gestuurd dat wordt gespecificeerd in de action-eigenschap van de <form>-tag. In dit voorbeeld specificeren we het bestand zelf om de formuliergegevens te verwerken. Als je een andere PHP-pagina wilt gebruiken om de formuliergegevens te verwerken, verander dan het bestand in de naam van je keuze. Vervolgens kunnen we de superglobale variabele $_POST gebruiken om de waarden van de invoervelden te verzamelen:

Voorbeeld

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

Uitvoer voorbeeld

PHP $_GET

PHP $_GET kan ook worden gebruikt om de gegevens van een HTML-formulier (method="get") in te zamelen na het indienen.

$_GET kan ook de gegevens verzenden die in de URL zijn opgegeven.

Stel dat we een pagina hebben met hyperlinks met parameters:

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

Wanneer de gebruiker klikt op de link "Test $GET", worden de parameters "subject" en "web" naar "test_get.php" verzonden, waarna je deze waarden kunt verkrijgen via $_GET in "test_get.php".

Het volgende voorbeeld is de code uit "test_get.php":

Voorbeeld

<html>
<body>
<?php 
echo "In " . $_GET['web'] . " leer je " . $_GET['subject'];
?>
</body>
</html>

Uitvoer voorbeeld

Tip:Je zult PHP Formulieren In deze sectie leer je meer over $_POST en $_GET.