‘&’ vor dem Parameternamen

Lesezeit: 1 Minute

Benutzer-Avatar
Tablett

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;
  }
}

Benutzer-Avatar
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.

http://us.php.net/language.references.pass

Benutzer-Avatar
Henrik Paul

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.

Es zeigt an, dass die Parameter wird als Referenz übergeben statt nach Wert.

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

1099170cookie-check‘&’ vor dem Parameternamen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy