Wie werden Variablen in PHP übergeben?
sobes.tech KI
Antwort von AI
Variablen in PHP werden standardmäßig per Wert übergeben. Das bedeutet, dass beim Zuweisen des Wertes einer Variablen an eine andere oder beim Übergeben einer Variablen an eine Funktion eine Kopie des Wertes erstellt wird. Änderungen an dieser Kopie wirken sich nicht auf die ursprüngliche Variable aus.
Variablen können jedoch auch per Referenz übergeben werden. In diesem Fall wird anstelle einer Kopie des Wertes ein Zeiger auf denselben Speicherbereich wie die ursprüngliche Variable übergeben. Änderungen, die über die Referenz vorgenommen werden, wirken sich direkt auf die ursprüngliche Variable aus.
Die Übergabe per Referenz wird verwendet:
-
Zuweisung per Referenz: Verwendung des Zuweisungsoperators mit Ampersand (
=&).// Zuweisung per Referenz $a = 10; $b =& $a; $b = 20; // Änderung von $b ändert auch $a // $a ist jetzt 20 -
Übergabe eines Parameters per Referenz an eine Funktion: Hinzufügen eines Ampersands (
&) vor dem Parameternamen in der Funktionsdefinition.<?php // Funktion, die ein Argument per Referenz entgegennimmt function modifyValue(&$value) { $value *= 2; } $number = 5; modifyValue($number); // $number ist jetzt 10 ?> -
Rückgabe eines Wertes per Referenz aus einer Funktion: Verwendung des Ampersands (
&) vor dem Funktionsnamen in der Definition.<?php // Funktion, die einen Wert per Referenz zurückgibt function &getReference() { static $value = 0; $value++; return $value; } $a = &getReference(); $a = 100; // Änderung von $a ändert auch die statische Variable innerhalb der Funktion $b = &getReference(); // $b referenziert jetzt auf die gleiche statische Variable (gleich 101) ?>
Es ist wichtig zu beachten, dass einige Datentypen, wie Objekte, immer per Referenz übergeben werden (genauer gesagt, eine Referenz auf das Objekt wird übergeben). Beim Zuweisen eines Objekts an ein anderes referenzieren beide Variablen auf die gleiche Instanz des Objekts.
| Übergabemethode | Funktionsweise | Verwendung |
|---|---|---|
| Per Wert | Es wird eine Kopie des Wertes erstellt | Standardverhalten, sicher für die Originalvariable |
| Per Referenz | Es wird ein Zeiger auf den Speicher übergeben | Änderungen wirken sich direkt auf die Originalvariable aus |