W3docs

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;     // boolean

PHP 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.

php— editable, runs on the server

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:

FunktionGibt 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) — destroyed

isset 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 reference

Referenzen 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;      // Hello

Dies 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");   // 11

Dies 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. $counter oder $totalPrice dokumentiert die Absicht deutlich besser als $x oder $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 global zu 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.

Practice

Übung
Welche der folgenden Optionen sind in PHP Wege zur Variablenbehandlung?
Welche der folgenden Optionen sind in PHP Wege zur Variablenbehandlung?

Practice

Übung
Welche der folgenden Optionen sind in PHP Wege zur Variablenbehandlung?
Welche der folgenden Optionen sind in PHP Wege zur Variablenbehandlung?
Was this page helpful?