Heim > Artikel > Backend-Entwicklung > PHP-Referenzen
PHP-Referenzen sind Symboltabellen-Aliase, mit denen auf den Inhalt einer Variablen unter verschiedenen Namen zugegriffen werden kann. Der explizit definierten referenzierten Variablen muss ein kaufmännisches Und-Symbol (&) vorangestellt werden. Die Funktionalität von PHP-Referenzen lässt sich anhand der Analogie der Windows-Verknüpfung erklären. PHP-Referenzen können in der PHP-Programmierung auf verschiedene Arten definiert werden.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Die am häufigsten verwendeten Methoden zum Erstellen von PHP-Referenzen werden im Folgenden erläutert:
In der Methode kann eine Referenz mit dem Schlüsselwort „global“ vor der referenzierten Variablen erstellt werden. Durch die Deklaration einer Referenz als globale Variable wird die Variable zum Array $GLOBAL hinzugefügt und ermöglicht dem Benutzer den Zugriff auf eine globale Variable innerhalb des Funktionsumfangs. Grundsätzlich gibt es zwei Möglichkeiten, wie eine PHP-Referenz definiert werden kann, indem sie als globale Variable deklariert wird, wie zum Beispiel:
function Function_name() { global $globalVar; } OR function Function_name() { $globalVar =& $GLOBALS["globalVar"]; }
Beispiel
Der folgende Codeausschnitt soll den Unterschied zwischen dem Wert für dieselbe Variable in Bezug auf den lokalen Bereich und den globalen Bereich veranschaulichen.
<?php function functionname() { $inputvar = "within function scope"; echo '$inputvar in global scope: ' . $GLOBALS["inputvar"] . "\n"; echo '$inputvar in current scope: ' . $inputvar . "\n"; } $inputvar = "Outside function scope"; $othervar= $GLOBALS["inputvar"]; //Creating inputvar in GLOBAL array functionname(); echo '$othervar : ' . $othervar . "\n"; ?>
Ausgabe
Othervar ist der Referenzsatz für die Eingabevariable aus dem GLOBAL-Array. Es ist nicht an die Variable inputvar gebunden, die im lokalen Bereich der Funktion definiert ist.
Die Variable „$this“ ist ein Standardverweis auf das Objekt für die Funktion, auf die die Variable $this verwiesen wird.
Beispiel
Der folgende Code demonstriert die Verwendung der Variablen $this, um auf den Wert einer beliebigen Klasseneigenschaft des ausgewählten Klassenobjekts zuzugreifen.
<?php class Thisclass { var $clsproperty = 300; function classmethod() { $this->clsproperty = 500; // $this is a reference to the object } } $clsObject = new Thisclass(); $clsObject->classmethod(); echo "The displayed value is: ". $clsObject->clsproperty; //display the value updated using $this property ?>
Ausgabe
Der Wert der cls-Eigenschaft wird basierend auf dem Wert angezeigt, der mit der Variablen $this festgelegt wurde.
Bei der PHP-Programmierung jede Operation, die an einem Klassenobjekt ausgeführt wird, z. B. Zuweisen, Zurückgeben oder Übergeben usw.; Die Operation wird immer mit Bezug auf das Objekt und nicht auf dessen Kopie ausgeführt.
Die Standardsyntax zum Erstellen einer PHP-Objektreferenz lautet wie folgt:
class ClassName { //Body of the class } $classObj1 = new ClassName (); $classObj2= $classObj1;
Hier bezieht sich das Objekt classObj2 auf denselben Inhalt, der in classObj1 enthalten ist.
Beispiel
Der folgende Codeausschnitt dient dazu, ein Referenzobjekt für das eigentliche Objekt zu erstellen und auf seine Eigenschaften zuzugreifen.
<?php class Costume { // Declaring the class properties public $name; public $color; // Declaring the class methods function set_name($name) { $this->name = $name; } function get_name() { return $this->name; } function set_color($color) { $this->color = $color; } function get_color() { return $this->color; } } //Creating the object $constume1 = new Costume(); $constume1->set_name('Superman'); $constume1->set_color('Blue and Red'); //Creating the object reference $constume2=$constume1; echo "Costume1 Name: " . $constume1->get_name(); echo "\n"; echo "Costume1 Color: " . $constume1->get_color(); echo "\n"; echo "\n"; echo "Costume2 Name: " . $constume2->get_name(); echo "\n"; echo "Costume2 Color: " . $constume2->get_color(); ?>
Ausgabe
Das Referenzobjekt „Kostüm2“ bezieht sich auf dieselben Werte, die in den Eigenschaften „Name“ und „Farbe“ des tatsächlichen Objekts „Kostüm1“ enthalten sind.
Bei der PHP-Programmierung werden verschiedene Operationen mit PHP-Referenzen ausgeführt. Einige der wichtigsten Operationen werden in der folgenden Sitzung besprochen:
Damit eine Funktion eine Variable ändern kann, die außerhalb ihres Gültigkeitsbereichs definiert ist, muss der Wert über seine Referenz an die Funktion übergeben werden.
Beispiel
Der folgende Codeausschnitt ändert den Wert der Variablen, die außerhalb des Bereichs der aufgerufenen Funktion definiert ist, mithilfe der Referenz auf die Variable.
<?php function Afunction(&$input) //passing the input argument by reference { $input*=10; } $outVar=5; echo "Before the function is called: ".$outVar; echo "\n"; Afunction($outVar); echo "After the function is called: ".$outVar; ?>
Ausgabe
Der Wert der Variablen outvar wird durch die Funktion AFunction() geändert.
Dieser Vorgang ermöglicht es der aufrufenden Funktion, die Variable herauszufinden, an die die Referenz gebunden werden soll. Es wird empfohlen, es nur zu verwenden, wenn technische Anforderungen bestehen, da es sonst nicht zur Leistung des Programms beiträgt.
Beispiel
Der folgende Codeausschnitt dient dazu, den Rückgabewert einer übergeordneten Funktion als Referenz an die übergeordnete Klasse der definierten Klasse zu übergeben.
<?php class parentclass { public $parentvar = "I am set at parent class"; public function &parentfunction() { return $this->parentvar; } } $parentobj = new parentclass; $newvar = &$parentobj->parentfunction(); echo $newvar; echo "\n"; $parentobj->parentvar= "I am set outside of the class"; echo $newvar; ?>
Ausgabe
Der Benutzer kann die Bindung zwischen der Variablen und der Referenz mithilfe der Methode unset() aufheben.
Beispiel
Der folgende Codeausschnitt zeigt die Verwendung der Methode unset(), um die referenzierte Variable firstinput von secondinput zu entbinden.
<?php $firstinput = "I am first input"; $secondinput =& $firstinput; echo "First input: ". $firstinput; echo"\n"; echo "Second input: " . $secondinput; unset($firstinput); echo"\n"; echo"\n"; echo "After unsetting the reference: "; echo"\n"; $firstinput = "I am set to second input"; echo"\n"; echo "First input: ". $firstinput; echo"\n"; echo "Second input: " . $secondinput; ?>
Ausgabe
PHP-Referenzen sind wichtige Funktionen, die in die PHP-Skripterstellung integriert sind. PHP-Referenzen sind keine Zeiger, wie es für „C“ beschrieben werden kann, die auch Speicher belegen, um doppelte Elemente zu erstellen. Vielmehr handelt es sich bei PHP-Referenzen lediglich um unterschiedliche Alias, um auf den Inhalt der tatsächlichen Variablen zu verweisen. Wenn für ein Objekt in PHP eine Kopie eines Objekts erforderlich ist, kann dies mit dem Schlüsselwort „clone“ erfolgen.
Das obige ist der detaillierte Inhalt vonPHP-Referenzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!