Referenzen

Aus php bar

Wechseln zu: Navigation, Suche

Allgemein

Referenzen sind Zeiger auf Objekte. Es sind keine Kopien der Objekte sondern nur die Adressen zu den Objekten im Speicher. Man kann im PHP Programmcode auch Referenzen nutzen. Das spart Perfomance, denn PHP muss nicht mehr Kopien erstellen, sondern das Referenzierte Objekt bzw. die referenzierte Variable wird nur 1 mal im Speicher abgelegt.

Aufpassen sollte man nur bei der Veraenderung von Variablen, die als Referenz uebergeben wurden, denn anders als bei einer Kopie, wird bei veraenderung nicht nur die Uebergebene Variable geandert sondern auch die Ursprungsvariable. Siehe 1. Beispiel.

Beispiele

Uebergabe eines Funktionsparameters als Referenz:

 <?php
 class MyClass1 {
   
   function __construct(&$myobject, &$mystring) {
     // Durch das & zeichen wurde dem PHP Compiler mitgeteilt nur eine Referenz und keine Kopie zu uebergeben.
     // Wir koennen mit der Referenz dennoch ganz normal arbeiten
     $myobject->test = 1;
     $mystring = "Alles aendert sich!";
   }
10 
11 }
12 
13 class MyClass2 {
14   
15   public $test = 2;
16 
17 }
18 
19 $mystring = "Noch keine aenderung";
20 $myobject = new MyClass2();
21 
22 $testcase = new MyClass1(&$myobject, &$mystring);
23 
24 // Dadurch das wir eine Referenz und keine Kopie uebergeben haben, wurde der String durch den Constructor
25 // auch fuer die Ursprungsvariable geandert.
26 // Echo gibt jetzt also "Alles aendert sich!" aus.
27 echo $mystring;
28 ?>



Persönliche Werkzeuge