PHP globale variabler - Hyperglobale variabler
- Forrige side PHP array sortering
- Næste side PHP formularbehandling
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; ?>
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']; ?>
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>
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>
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>
Tip:Du vil finde PHP formular Lær mere om $_POST og $_GET i dette afsnit.
- Forrige side PHP array sortering
- Næste side PHP formularbehandling