Der Gültigkeitsbereich von Variablen

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.

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>

  Beispieldatei "formular_funktion.html"

<?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>";
?>

  Anzeige des Ausgabeprogramms "funktion_var.php"