Lokale Variablen sind nur innerhalb des Körpers einer **Funktion** oder **Methode** (in der objektorientierten Programmierung) gültig.
Wenn wir im Kontext eines regulären Skripts arbeiten, geschieht alles wie erwartet:
$x = 5;echo $x; // druckt 5
Wenn wir jedoch eine benutzerdefinierte Funktion definieren, ändert sich das Verhalten leicht:
$x = 5;function mojeFunkce(): int{$x = 3;echo $x; // druckt 3}echo $x; // druckt 5
Der Grund dafür ist, dass die Variable $x nur im Kontext der aktuellen Funktion oder Methode existiert. Dieses Verhalten ist beabsichtigt.
Wenn wir einen Wert aus dem umgebenden Code an eine Funktion übergeben wollen, müssen wir sie mit den erforderlichen Parametern aufrufen:
echo mojeFunkce(5); // druckt 6function mojeFunkce(int $x): int{return $x + 1;}
In Funktionen werden Werte über Parameter eingegeben. Wenn Sie über die Parameter hinaus weitere Variablen an die Funktion übergeben wollen, können Sie globale Variablen verwenden, aber das ist keine gute Idee.
Die Verwendung lokaler Variablen macht einen großen Unterschied bei der Programmierung einer größeren Anwendung. Wenn wir nicht zwischen der Gültigkeit von Variablen in verschiedenen Kontexten unterscheiden würden, wäre es unmöglich zu garantieren, dass eine Variable nicht an einer Stelle überschrieben wird, an der wir nicht mit ihr rechnen (deshalb sind globale Variablen böse).
$x = 5;$y = 3;function soucet(int $x, int $y): int{return $x + $y;}echo $x; // druckt 5echo soucet($x, $y); // druckt 8
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | de