Auf Variablen, die Sie außerhalb einer Funktion im PHP-Programm einsetzen, können Sie in Funktionen nicht ohne weiteres zugreifen und mit ihnen arbeiten. Ebenso gibt es innerhalb einer Funktion Variablen, auf die Sie außerhalb der Funktion nicht zugreifen können.
Variablen haben, je nachdem, wo sie definiert sind, unterschiedliche Gültigkeitsbereiche.
global bekannt gemacht werden, z. B. global $zahl.$_POST.Im folgenden Beispiel werden globale und superglobale Variablen gegenübergestellt. Hierzu wird ein Bestell-Formular für Äpfel erstellt. Anhand des PHP-Codes im Auswertungsprogramm wird gezeigt, wann welche Variablen gültig sind.
Beispiel: formular_funktion.html, funktion_var.php
<html> <body> <h2>Apfelkauf</h2> Bitte geben Sie die gewünschte Menge ein und wählen Sie eine Apfelsorte: <form action="funktion_var.php" method="post"> Menge: <input name="menge"><br><br> Apfelsorte:<br> <input type="radio" name="sorte" value="Jonagold">Jonagold <input type="radio" name="sorte" value="Gala">Gala <input type="radio" name="sorte" value="Elstar">Elstar<br><br> <input type="Submit" value="Abschicken"> <input type="Reset" value="Zurücksetzen"> </form> </body> </html>
POST werden nach Absendung des Formulars folgende Variablen an das Auswertungsprogramm funktion_var.php weitergegeben: $menge, die vom Benutzer eingetragen wird, und $sorte, die der Benutzer mithilfe eines Optionsfeldes auswählt<?php $bestellnummer = "TT1911"; $bearbeiter = "Mario Caspari"; function bestellung() { global $bestellnummer; // globale Variable echo "Bestellnummer: " .$bestellnummer ."<br>"; echo "Bearbeiter: " .$bearbeiter ."<br>"; echo "Die von Ihnen eingegebene Menge: ".$_POST["menge"]." kg<br>"; switch($_POST["sorte"]) { case "Jonagold": $preis=$_POST["menge"]*1.50; // lokale Variable break; case "Gala": $preis=$_POST["menge"]*1.65; // lokale Variable break; case "Elstar": $preis=$_POST["menge"]*2.00; // lokale Variable break; } echo "Ausgabe des Preises innerhalb der Funktion: $preis<br>"; } echo "Die von Ihnen gewählte Sorte: ".$_POST["sorte"]."<br>"; bestellung() ; echo "Ausgabe des Preises außerhalb der Funktion: $preis<br>"; ?>
$bestellnummer und $bearbeiter werden als globale Variablen im Programm definiert.$bestellnummer wird innerhalb der Funktion bestellung() mithilfe des Schlüsselwortes global bekannt gemacht.$bestellnummer und $bearbeiter sollen innerhalb der Funktion ausgegeben werden. Da die Variable $bearbeiter innerhalb der Funktion nicht mithilfe des Schlüsselwortes global bekannt gemacht wurde, wird sie bei der Ausgabe nicht angezeigt.$_POST["menge"] wird innerhalb der Funktion bestellung() ausgegeben.bestellung() wird der Wert der lokalen Variablen $preis berechnet.''$preis wird innerhalb der Funktion ausgegeben.$_POST ["sorte"] wird außerhalb der Funktion bestellung() ausgegeben.bestellung() wird aufgerufen.$preis soll auch außerhalb der Funktion ausgegeben werden.