Variablenbereich
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy. Lektion 67 von 71.
Variablen, die innerhalb einer Funktion erstellt werden, sind vollständig von Variablen außerhalb der Funktion getrennt. Dieses Konzept wird Variablenbereich genannt, und sein Verständnis hilft dir, verwirrende Fehler in deinem Code zu vermeiden.
Eine innerhalb einer Funktion definierte Variable existiert nur innerhalb dieser Funktion. Sie wird als lokale Variable bezeichnet:
<?php
function sayHi() {
$message = "Hello!";
echo $message;
}
sayHi();
echo $message; // Fehler: $message existiert hier nicht
?>Die Variable $message wird innerhalb von sayHi() erstellt und verschwindet, wenn die Funktion endet. Der Versuch, außerhalb darauf zuzugreifen, verursacht einen Fehler.
Ebenso sind Variablen, die außerhalb einer Funktion definiert wurden, nicht automatisch innerhalb der Funktion verfügbar:
<?php
$name = "Alice";
function greet() {
echo $name; // Fehler: $name ist innerhalb dieser Funktion nicht definiert
}
greet();
?>Obwohl $name im Hauptcode existiert, kann die Funktion es nicht sehen. Um außerhalb einer Funktion liegende Werte in einer Funktion zu verwenden, übergib sie als Parameter: Das ist der saubere, empfohlene Ansatz, den du bereits kennengelernt hast.
Diese Trennung ist tatsächlich hilfreich. Das bedeutet, dass Funktionen nicht versehentlich Variablen in anderen Teilen deines Programms ändern und dein Code dadurch vorhersehbarer und leichter zu debuggen ist.
Aufgabe
EinfachLies zwei Eingabezeilen ein:
- Den Namen einer Person (z. B.
Alice) - Einen Bonusbetrag als ganze Zahl (z. B.
50)
Erstelle eine Funktion namens calculateBonus, die zwei Parameter akzeptiert: $name (String) und $bonus (Int).
Innerhalb der Funktion:
- Erstelle eine lokale Variable
$baseSalaryund setze sie auf1000 - Berechne das Gesamtgehalt, indem du
$baseSalaryund$bonusaddierst - Gib einen String im Format
[name] earns [total]zurück
Rufe die Funktion mit den Eingabewerten auf und gib das zurückgegebene Ergebnis aus.
Beispiel 1:
Wenn die Eingaben Alice und 50 sind, sollte die Ausgabe wie folgt aussehen:
Alice earns 1050Beispiel 2:
Wenn die Eingaben Bob und 200 sind, sollte die Ausgabe wie folgt aussehen:
Bob earns 1200Beispiel 3:
Wenn die Eingaben Emma und 0 sind, sollte die Ausgabe wie folgt aussehen:
Emma earns 1000Probier es selbst
<?php
// Eingabe lesen
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));
// TODO: Erstelle die calculateBonus-Funktion unten
// - Sie sollte $name (string) und $bonus (int) als Parameter akzeptieren
// - Erstelle eine lokale Variable $baseSalary mit dem Wert 1000
// - Berechne die Gesamtvergütung und gib "[name] earns [total]" zurück
// Rufe die Funktion auf und gib das Ergebnis aus
echo calculateBonus($name, $bonus);
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler