Was ist ein Zitat?
Referenzen in PHP bedeuten, dass auf denselben Variableninhalt mit unterschiedlichen Variablennamen zugegriffen wird, ähnlich dem Dateinamen und der Datei selbst in Unix (der Variablenname ist der Verzeichniseintrag und der Variableninhalt ist die Datei selbst). , auf die gleiche Datei wird mit unterschiedlichen Verzeichniseinträgen zugegriffen), kann als Hardlink im Unix-Dateisystem angesehen werden.
Es gibt zwei Arten von Links im Dateisystem, eine wird als Hard Link und die andere als Symbolic Link bezeichnet. Standardmäßig generiert der Befehl ln Hardlinks. Eine harte Verbindung bezieht sich auf eine Verbindung über einen Indexknoten. Im Linux-Dateisystem wird den in Festplattenpartitionen gespeicherten Dateien unabhängig von ihrem Typ eine Nummer zugewiesen, die als Indexknotennummer (InodeIndex) bezeichnet wird. Unter Linux gibt es mehrere Dateinamen, die auf denselben Indexknoten verweisen. Im Allgemeinen handelt es sich bei dieser Verbindung um eine harte Verbindung. Die Funktion von Hardlinks besteht darin, einer Datei mehrere gültige Pfadnamen zu ermöglichen, sodass Benutzer Hardlinks zu wichtigen Dateien erstellen können, um ein „versehentliches Löschen“ zu verhindern. Der Grund dafür ist wie oben erwähnt, dass mehr als eine Verbindung zum Indexknoten des Verzeichnisses besteht. Das Löschen nur einer Verbindung hat keine Auswirkungen auf den Indexknoten selbst und andere Verbindungen. Erst wenn die letzte Verbindung gelöscht wird, werden die Datenblöcke der Datei und der Verzeichnisverbindungen freigegeben. Mit anderen Worten: Die Datei wird tatsächlich gelöscht. Entsprechend der harten Verbindung gibt es im Lnux-System eine weitere Verbindung, die als symbolischer Link (Symbilc Link) bezeichnet wird und auch als Softlink bezeichnet wird. Softlink-Dateien ähneln Windows-Verknüpfungen. Es handelt sich eigentlich um eine Art Spezialdatei. Bei einem symbolischen Link handelt es sich bei der Datei tatsächlich um eine Textdatei, die die Speicherortinformationen einer anderen Datei enthält.
Zitate werden hauptsächlich für drei Dinge verwendet:
Zeigt auf denselben Inhalt
Mit dem-Zitat können zwei Variablen auf denselben Inhalt verweisen, z. B. $a = & $b
, was bedeutet, dass $a
und $b
auf dieselbe Variable verweisen.
Wenn eine undefinierte Variable per Referenz zugewiesen, per Referenz übergeben oder per Referenz zurückgegeben wird, wird die Variable automatisch erstellt. Das folgende Programm erstellt beispielsweise automatisch die Variable $a
.
<code>function foo(&$var) {} foo($a);</code>
Seit PHP 5 gibt der new
-Operator automatisch eine Referenz zurück.
Übergabe als Referenz
Die Übergabe von Variablen als Referenz kann durch den folgenden Code erreicht werden. Die Variable foo
in der Funktion $var
zeigt auf denselben Inhalt, auf den auch $a
verweist. .
<code><?php function foo(&$var) { $var++; } $a = 1; foo($a); echo $a;</code>
In der Funktionsdefinition ist nur das Referenzsymbol &
vorhanden, beim Aufruf der Funktion gibt es jedoch kein Referenzsymbol &
.
Rückgabe per Referenz
Um eine Referenz zurückzugeben, verwenden Sie die folgende Syntax.
<code><?php class foo { public $value = 42; public function & getValue() { return $this->value; } } $obj = new foo; $myValue = & $obj->getValue(); $obj->value = 2; echo $myValue;</code>
Beachten Sie, dass sich die Rückgabe per Referenz von der Parameterübergabe unterscheidet. Das Symbol &
wird sowohl in der Funktionsdefinition als auch im Funktionsaufruf verwendet (was anzeigt, dass eine Referenz anstelle einer üblichen Kopie zurückgegeben wird).
Unquote
Wenn unset()
eine Referenz ist, wird die Bindung zwischen dem Variablennamen und dem Variableninhalt nur unterbrochen und der Variableninhalt nicht zerstört.
Referenzpositionierung
Viele PHP-Syntaxstrukturen werden über den Referenzmechanismus implementiert, z. B. global
-Referenzen und $this
-Zeiger.
Wenn eine Variable mit global $var
deklariert wird, wird tatsächlich ein Verweis auf die globale Variable hergestellt, was den gleichen Effekt wie $var = & $GLOBALS['var']
hat. In einer Objektmethode ist $this
immer eine Referenz auf das Objekt, das sie aufruft.
(Volltext beendet)
Das Obige stellt die Referenz vor - Anmerkungen zum PHP-Handbuch, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.