Was bedeutet das “&”-Zeichen in PHP? [duplicate]

Lesezeit: 2 Minuten

Benutzer-Avatar
jeffkee

Ich habe versucht, diese Antwort bei Google zu finden, aber ich errate das Symbol & funktioniert als ein Operator oder ist aus irgendeinem Grund im Allgemeinen kein durchsuchbarer Begriff. Ich habe dieses Code-Snippet gesehen, als ich lernte, wie man WordPress-Plugins erstellt, also muss ich nur wissen, was die & bedeutet, wenn es einer Variablen vorangeht, die ein Klassenobjekt enthält.

//Actions and Filters
if (isset($dl_pluginSeries)) {

    //Actions
    add_action('wp_head', array(&$dl_pluginSeries, 'addHeaderCode'), 1);
    //Filters
    add_filter('the_content', array(&$dl_pluginSeries, 'addContent'));
}

Benutzer-Avatar
Phil Rykoff

Dadurch wird die Übergabe der Variablen als Referenz erzwungen. Normalerweise würde für einfache Typen eine Hardcopy erstellt werden. Dies kann für große Zeichenfolgen nützlich sein (Leistungsgewinn) oder wenn Sie die Variable manipulieren möchten, ohne die return-Anweisung zu verwenden, z. B.:

$a = 1;

function inc(&$input)
{
   $input++;
}

inc($a);

echo $a; // 2

Objekte werden automatisch per Referenz übergeben.

Wenn Sie eine Kopie an eine Funktion übergeben möchten, verwenden Sie

clone $object;

Dann wird das ursprüngliche Objekt nicht verändert, zB:

$a = new Obj;
$a->prop = 1;
$b = clone $a;
$b->prop = 2; // $a->prop remains at 1

Das kaufmännische Und vor einer Variablen stellt einen Verweis auf das Original statt auf eine Kopie oder nur den Wert dar.

Siehe hier: http://www.phpreferencebook.com/samples/php-pass-by-reference/

Dies übergibt etwas als Referenz anstelle eines Werts.

Sehen:

http://php.net/manual/en/language.references.php
http://php.net/manual/en/language.references.pass.php

Benutzer-Avatar
Benutzer58670

Ich habe es verwendet, um eine Variable an eine Funktion zu senden und die Funktion die Variable ändern zu lassen. Nachdem die Funktion fertig ist, muss ich die Funktion nicht auf den Rückgabewert zurückgeben und den neuen Wert auf meine Variable setzen.

Beispiel

function fixString(&$str) {
    $str = "World";
}

$str = "Hello";
fixString($str);
echo $str; //Outputs World;

Code ohne die &

function fixString($str) {
    $str = "World";
    return $str;
}

$str = "Hello";
$str = fixString($str);
echo $str; //Outputs World;

1019030cookie-checkWas bedeutet das “&”-Zeichen in PHP? [duplicate]

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

Privacy policy