PHP globale variabler - Hyperglobale variabler

Hyperglobale variabler blev introduceret i PHP 4.1.0 og er indbyggede variabler, der er tilgængelige i hele rækkevidden.

PHP globale variabler - Hyperglobale variabler

Mange prædefinerede variabler i PHP er 'hyperglobale', hvilket betyder, at de er tilgængelige i hele skriptets rækkevidde. Man behøver ikke at udføre global $variable; for at tilgå dem i funktioner eller metoder.

Disse hyperglobale variabler er:

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

Dette afsnit vil præsentere nogle hyperglobale variabler og vil forklare andre hyperglobale variabler i senere kapitler.

$GLOBALS - Refererer til alle variabler tilgængelige i den globale rækkevidde

Denne globale variabel $GLOBALS bruges til at tilgå globale variabler i PHP-skriptet (fra funktioner eller metoder).

PHP gemmer alle globale variabler i arrayet $GLOBALS[index]. Variabelnavnet er nøglen til arrayet.

Dette eksempel viser, hvordan man bruger den superglobale variabel $GLOBALS:

Eksempel

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

Kør eksempel

I det ovennævnte eksempel kan z også tilgås uden for funktionen, da den er en variabel i $GLOBALS-arrayen.

PHP $_SERVER

Denne hyperglobale variabel $_SERVER gemmer oplysninger om hoveder, stier og skriptplaceringer.

Dette eksempel viser, hvordan man bruger nogle af elementerne i $_SERVER:

Eksempel

<?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 eksempel

Følgende tabel viser de vigtigste elementer, du kan få adgang til i $_SERVER:

Element/kode Beskrivelse
$_SERVER['PHP_SELF'] Returnerer filnavnet på det skript, der kører.
$_SERVER['GATEWAY_INTERFACE'] Returnerer versionen af CGI-standarden, som serveren bruger.
$_SERVER['SERVER_ADDR'] Returnerer IP-adressen for serveren, hvor skriptet kører.
$_SERVER['SERVER_NAME'] Returnerer værtsnavnet for serveren, hvor skriptet kører (f.eks. www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Returnerer serveridentifikationsstrengen (f.eks. Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Returnerer navnet og versionen af kommunikationsprotokollen, der bruges til at anmode om siden (f.eks. “HTTP/1.0”)
$_SERVER['REQUEST_METHOD'] Returnerer navnet på anmodningsmetoden, der bruges til at tilgå siden (f.eks. POST).
$_SERVER['REQUEST_TIME'] Returnerer tidsstempeln for, når anmodningen startede (f.eks. 1577687494).
$_SERVER['QUERY_STRING'] Returnerer søgestrengen, hvis siden blev adgang via søgestreng.
$_SERVER['HTTP_ACCEPT'] Returnerer anmodningshovedet fra den aktuelle anmodning.
$_SERVER['HTTP_ACCEPT_CHARSET'] Returnerer Accept_Charset-hovedet fra den aktuelle anmodning (f.eks. utf-8, ISO-8859-1)
$_SERVER['HTTP_HOST'] Returnerer Host-hovedet fra den aktuelle anmodning.
$_SERVER['HTTP_REFERER'] Returnerer den fulde URL for den aktuelle side (ikke pålidelig, da ikke alle brugeragenter understøtter det).
$_SERVER['HTTPS'] Kan man gennemgå skript via sikker HTTP-protokol?
$_SERVER['REMOTE_ADDR'] Returnerer IP-adressen for brugeren, der browsede den aktuelle side.
$_SERVER['REMOTE_HOST'] Returnerer værtens navn for brugeren, der browsede den aktuelle side.
$_SERVER['REMOTE_PORT'] Returnerer portnummeret, der bruges til at forbinde til webserveren på brugerens maskine.
$_SERVER['SCRIPT_FILENAME'] Returnerer den absolute sti til den skript, der kører.
$_SERVER['SERVER_ADMIN'] Denne værdi specificerer SERVER_ADMIN-parameters i Apache-serverens konfigurationsfil.
$_SERVER['SERVER_PORT'] Porten, som webserveren bruger. Standardværdien er "80".
$_SERVER['SERVER_SIGNATURE'] Returnerer serverens version og virtuelt værtens navn.
$_SERVER['PATH_TRANSLATED'] Basisstien til filsystemet, hvor den aktuelle skriptfil ligger (ikke dokumentroot-kataloget).
$_SERVER['SCRIPT_NAME'] Returnerer stien til den aktuelle skript.
$_SERVER['SCRIPT_URI'] Returnerer URI'en for den aktuelle side.

PHP $_REQUEST

PHP $_REQUEST bruges til at indsamle data fra en HTML-formular, der er sendt.

Dette eksempel viser en formular, der indeholder inputfelter og en submit-knap. Når brugeren klikker på submit-knappen for at sende formulardataene, vil formulardataene blive sendt til den skriptfil, der er specificeret i action-egenskaben af <form>-tagget. I dette eksempel har vi specificeret filen selv til at behandle formulardataene. Hvis du har brug for at bruge en anden PHP-fil til at behandle formulardataene, skal du ændre til det valgte filnavn. Derefter kan vi bruge den superglobale variabel $_REQUEST til at indsamle værdierne af inputfelterne:

Eksempel

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

Kør eksempel

PHP $_POST

PHP $_POST bruges bredt til at indsamle formulardata efter at have sendt en HTML-formular med method="post". $_POST bruges også ofte til at overføre variabler.

Dette eksempel viser en formular, der indeholder inputfelter og en submit-knap. Når brugeren klikker på submit-knappen for at sende data, vil formulardataene blive sendt til filen specificeret i action-egenskaben af <form>-tagget. I dette eksempel har vi specificeret filen selv til at behandle formulardataene. Hvis du ønsker at bruge en anden PHP-side til at behandle formulardataene, skal du ændre til det valgte filnavn. Derefter kan vi bruge den superglobale variabel $_POST til at indsamle værdierne af inputfelterne:

Eksempel

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

Kør eksempel

PHP $_GET

PHP $_GET kan også bruges til at indsamle data fra HTML-formularer (method="get") efter indsendelse.

$_GET kan også indsamle data, der sendes i URL'en.

Antag, at vi har en side med hyperlinks, der indeholder parametre:

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

Når brugeren klikker på linket "Test $GET", sendes parameterne "subject" og "web" til "test_get.php", og derefter kan du få adgang til disse værdier gennem $_GET i "test_get.php".

Følgende eksempel er kode fra "test_get.php":

Eksempel

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

Kør eksempel

Tip:Du vil finde PHP formular Lær mere om $_POST og $_GET i dette afsnit.