PHP Variablenbehandlung
Lernen Sie PHP-Variablenbehandlung: Deklarieren, prüfen, typisieren und dynamische Techniken wie Referenzen und variable Variablen.
Einführung
Variablenbehandlung bezeichnet die Gesamtheit der Techniken, mit denen Sie die Werte in Ihrem PHP-Skript erstellen, prüfen, kopieren und entfernen. Diese Seite geht über das einfache Zuweisen eines Wertes hinaus: Sie behandelt das Prüfen, ob eine Variable existiert (isset), das Ermitteln und Ändern ihres Typs (gettype / settype), das Erstellen von Referenzen sowie die dynamischeren Features von PHP — variable Variablen und variable Funktionen.
Wenn Sie noch nie eine PHP-Variable deklariert haben, starten Sie mit PHP Variables und PHP Data Types und kehren Sie dann hierher zurück, um die Behandlungstechniken zu erlernen.
Variablen deklarieren und zuweisen
In PHP beginnt ein Variablenname mit einem Dollarzeichen ($), gefolgt von einem Buchstaben oder Unterstrich. Sie deklarieren keinen Typ — PHP leitet ihn aus dem Wert ab, den Sie mit dem =-Operator zuweisen.
<?php
$name = "John"; // string
$age = 30; // integer
$price = 19.99; // float
$active = true; // booleanPHP ist dynamisch typisiert: Dieselbe Variable kann jetzt einen string und später eine Zahl enthalten. Die Variable nimmt einfach den Typ des zuletzt zugewiesenen Wertes an.
String-Interpolation
In doppelt gequoteten Strings (und Heredocs) ersetzt PHP eine Variable durch ihren Wert. Einfach gequotete Strings werden wörtlich genommen und interpolieren nicht.
Variablen prüfen und entfernen
Bevor Sie eine Variable lesen, die möglicherweise nicht existiert, sollten Sie sie testen. Diese drei Funktionen sind der Kern einer sicheren Variablenbehandlung:
| Funktion | Gibt true zurück, wenn... |
|---|---|
isset($var) | die Variable existiert und nicht null ist |
empty($var) | die Variable nicht gesetzt, null, 0, "", "0", false oder [] ist |
unset($var) | (kein Rückgabewert) zerstört die Variable, sodass isset false zurückgibt |
<?php
$user = null;
var_dump(isset($user)); // bool(false) — null counts as "not set"
$count = 0;
var_dump(empty($count)); // bool(true) — 0 is "empty"
$temp = 10;
unset($temp);
var_dump(isset($temp)); // bool(false) — destroyedisset ist die am häufigsten verwendete Schutzfunktion, insbesondere bei Superglobalen wie $_GET und $_POST, bei denen ein Schlüssel fehlen kann.
Typen prüfen und ändern
Da PHP Typen ableitet, müssen Sie manchmal fragen, welchen Typ ein Wert aktuell hat, oder eine Konvertierung erzwingen.
<?php
$price = 19.99;
echo gettype($price); // double (PHP's name for float)
$input = "42";
settype($input, "integer");
echo $input + 8; // 50 — now a real integer, not the string "42"Verwenden Sie gettype für einen lesbaren Typnamen und settype (oder einen Cast wie (int)) zur direkten Konvertierung. Für Vergleiche bevorzugen Sie die typbewussten Funktionen is_int(), is_string(), is_array() und so weiter.
Erweiterte Variablenbehandlung
Sobald die Grundlagen vertraut sind, bietet PHP drei weitere dynamische Techniken. Verwenden Sie diese sparsam — sie sind mächtig, können aber die Lesbarkeit beeinträchtigen.
Variablenreferenzen
Eine Referenz lässt zwei Namen auf denselben zugrundeliegenden Wert zeigen. Zugewiesen wird mit =&, und jede Änderung über einen Namen ist über den anderen sichtbar.
<?php
$count = 1;
$alias =& $count; // $alias is now another name for $count
$alias = 5;
echo $count; // 5 — changed through the referenceReferenzen sind besonders wichtig, wenn Argumente per Referenz an Funktionen übergeben werden (function f(&$x)), sodass die Funktion die Variable des Aufrufers ändern kann.
Variable Variablen
Eine variable Variable verwendet den Wert einer Variable als Namen einer anderen. Die $$-Syntax liest die innere Variable, um den äußeren Namen zu bilden.
<?php
$var = "greeting";
$$var = "Hello"; // creates $greeting
echo $greeting; // HelloDies ist gelegentlich für dynamische Feldnamen nützlich, aber ein assoziatives Array ist fast immer klarer und sicherer.
Variable Funktionen
Wenn eine string-Variable einen Funktionsnamen enthält, ruft das Anhängen von () diese Funktion dynamisch auf.
<?php
$fn = "strlen";
echo $fn("Hello World"); // 11Dies ermöglicht einfache Dispatch-Tabellen und Callbacks. Modernes PHP bevorzugt in der Regel First-Class-Callables oder Closures, aber variable Funktionen bleiben gültig und schnell.
Best Practices
- Verwenden Sie aussagekräftige Namen.
$counteroder$totalPricedokumentiert die Absicht deutlich besser als$xoder$tmp. - Vor der Verwendung initialisieren. Das Lesen einer undefinierten Variable erzeugt eine Warnung; setzen Sie einen Standardwert oder sichern Sie mit
isset()ab. - Vermeiden Sie Globals. Übergeben Sie Werte als Funktionsargumente oder kapseln Sie den Zustand in Objekten, anstatt sich auf
globalzu verlassen. Siehe Variables Scope für die Bedeutung der Scope-Isolation. - Bevorzugen Sie Arrays gegenüber variablen Variablen. Sie sind einfacher zu iterieren, zu debuggen und zu verstehen.
- Verwenden Sie Typdeklarationen. Typisierte Parameter (
function setAge(int $age)) erkennen Fehler frühzeitig und machen Code selbstdokumentierend.
Zusammenfassung
Die PHP-Variablenbehandlung umfasst mehr als nur Zuweisungen: Sie beinhaltet das Prüfen der Existenz mit isset/empty, das Entfernen von Werten mit unset, das Prüfen und Konvertieren von Typen mit gettype/settype sowie die dynamischen Werkzeuge — Referenzen, variable Variablen und variable Funktionen. Verlassen Sie sich im Alltag auf die einfachen, expliziten Techniken und reservieren Sie die dynamischen für die seltenen Fälle, in denen sie wirklich benötigt werden.