Nur eine kurze und zweifellos einfache Frage. Ich bin ziemlich neu in PHP und schaue mir etwas vorhandenen Code an. Ich habe versucht, die Antwort auf meine Frage bei Google zu finden, aber ohne Erfolg.
Kann mir bitte jemand sagen, was das ‘&’-Zeichen vor dem Parameter $var tut?
function setdefault(&$var, $default="")
{
if (! isset($var))
{
$var = $default;
}
}
AvatarKava
Übergibt es als Referenz.
Häh?
Referenzübergabe bedeutet, dass Sie statt des Wertes die Adresse der Variablen übergeben. Im Grunde machen Sie einen Zeiger auf die Variable.
Das bedeutet, dass die Funktion den Verweis auf den ursprünglichen Wert des Arguments erhält $varanstelle einer Kopie des Werts.
Beispiel:
function add(&$num) { $num++; }
$number = 0;
add($number);
echo $number; // this outputs "1"
Wenn add() das kaufmännische Und-Zeichen nicht in der Funktionssignatur hätte, würde das Echo “0” ausgeben, da der ursprüngliche Wert nie geändert wurde.
Das bedeutet, dass Sie eine Variable per Referenz übergeben http://ca3.php.net/language.references.pass. Dies bedeutet einfach, dass die Funktion die tatsächliche Variable und keine Kopie der Variablen erhält. Alle Änderungen, die Sie an dieser Variablen in der Funktion vornehmen, werden im Aufrufer gespiegelt.
& bedeutet Pass-by-Referenz; Dieser Code überprüft, ob die an die Funktion übergebene Variable tatsächlich im globalen Gültigkeitsbereich vorhanden ist. Ohne das & Es würde zuerst versuchen, eine Kopie der Variablen zu erstellen, was einen Fehler verursacht, wenn sie nicht existiert.