Hello,
Oder Du verwendest in der Funktion das Array $GLOBALS, mit dem Du ebenfalls Zugriff auf die globalen Variablen hast.
Beispiel:
$a = "blahr";
function z()
{ echo '3: '.$GLOBALS['a'].'\n'; }Yep! Wow! Das brauchte ich!
Das solltest Du nicht so machen. PHP bietet echt saubere Scopes für Funktionen, dann sollte man die Werte auch mittels Call-by-Value (also als Kopie der Variablen) als Funktionsattribut übergeben. Erst dann ist eine Funktion zur Hälfte richtig genutzt, da eine Entkoppelung der Namensbereiche entsteht.
Vollständig richtig benutzt ist die Funktion, wenn sie auch ein Ergebnis liefert:
<?php #### scope.php ####
function quadrat($wert)
{
# mach was mit dem wert
$wert *= $wert; ## das heißt: wert = wert * wert;
# und gib das Ergebnis zurück
return $wert;
}
Der Aufruf der Funktion erfolgt dann
$eingabe = 7;
echo "Eingabe vorher: $eingabe <br>";
echo "Eingabe Quadrat: ".quadrat($eingabe)."<br>";
echo "Eingabe hinterher: $eingabe <br>";
?>
Wie Du siehst, wird $eingabe nicht verändert und da kannst Du innerhalb der Funktion machen was Du willst. Aber das Ergebnis stimmt trotzdem (hoffe ich doch). Und dabei musstet Du iinerhalb der Funktion bei der Erstellung noch nicht wissen, wie Deine äußere Variable mal heißen wird. das ist doch ein echter Vorteil!
Liebe Grüße
Tom