Begriffe klären

mkoeni1

Erfahrenes Mitglied
Hallo zusammen,

die Grundlagen von PHP habe ich soweit verstanden (dachte ich). Jetzt bin ich heute im Geschäft über sowas gestolpert:
PHP:
$pf =& $_FILES;
$sv =& $_SESSION['anmeldung'];
$par =& $GLOBALS[PAR][CPAR];

Kann mir jemand erklären was das & hier bedeutet?
Normale Variablenzuweisungen sind mir geläufig:
PHP:
$a = $test;


Vielen Dank und Gruß
Matze
 
Habe ich in 2 Jahren Websiteprogrammierung nocht nich gebraucht - allerdings auch nicht professionell.

Wenn ich schreibe:
PHP:
$test = array();
[...arraycontent hinzufügen...]

und dann das ganze an eine Funktion übergebe:
PHP:
machWasMitMeinemArray($test);

wird dann nicht auch nur eine Referenz übergeben wo man das Array findet? So kenne ich das zumidest... Oder wird eine komplette Kopie von dem Array angelegt?

- Ist nur eine Frage dir mir gerade dazu in den Sinn gekommen ist -

lg
 
Nunja ist einbisschen schwer für mich es zu erklären....

Wenn kein & Operator vorangestellt ist, erzeugt der Interpreter (in PHP) eine komplette Kopie des Inhalts von dem gewünschten Variablennamen und bei einer Wertzuweisung mit einem & übergibt er nur einen bezug. Ist somit Ressourcenfreundlicher sozusagen ;) Ein C/C++ Programmierer der PHP erlernen möchte, hätte an dieser Stelle direkt gewusst, was man mit Referenzen alles vereinfachern könnte ;)

Kurzgesagt: Referenz = Zeiger
 
Zuletzt bearbeitet:
Hallo,

ok jetzt ist es mir klarer. Das iost auch nichts anderes wie
PHP:
$variable = $test;
nur ressourcenschonender.

Also in C sieht das dann so aus:
Code:
int *Width;
 *Width = 34;


Danke und Gruß
Matze
 
Sorry aber ich glaub du hast noch nicht komplett alles verstanden.

Referenz = &
Zeiger = *

Der Zeiger sagt dem Interpreter hinter welcher Adresse (0xXYZ........) er den Inhalt von der anderen Variable finden kann, somit wird kein Wert kopiert und in die andere Variable hineingeschrieben sondern er ist in diesem moment mit dem Wert nur verknotet sozusagen (sorry an dieser stelle fällt mir nichts ein was ich für verknotet hätte noch sagen können :D) mehr nicht.

Es gibt wohl keinen Zeiger in PHP sondern nur Referenzen aber dennoch wollte ich es näher erklären. ;) Ich hoffe du hast es jetzt besser verstanden ;)
 
Zurück