Martin Kenz: Call By Reference/Value

Hallo Leute,

erst mal eine dumme Anfängerfrage: Gib es in PHP Call By Reference bzw Call By Value?

Zweite Frage:
In einer Schleife, suche ich einen Knoten aus eiem Vector und verändere diesen. Findet diese Veränderung wirklich statt oder ist sie bei erneuertem Suchen wieder rückgängig gemacht worden?

Martin

  1. echo $begrüßung;

    erst mal eine dumme Anfängerfrage: Gib es in PHP Call By Reference bzw Call By Value?

    Es gibt ein Kapitel im Handbuch zu Referenzen. Außerdem ist die Antwort auf diese Frage versionsabhängig. Bis PHP4 werden generell Kopien verwendet, wenn nicht explizit mit dem Referenz-Operator gearbeitet wurde. Das bedeutet aber nicht zwingend, dass eine Kopie angelegt wird. Solange sich die Werte zweier Variablen, bei denen die eine durch Zuweisung aus der anderen erzeugt wurde, nicht ändern, verweisen beide Variablen-Kontrollstrukturen auf den gleichen Speicherbereich.

    Ab PHP5 wird bei Objekten generell mit Referenzen gearbeitet, bei anderen Variablen mit Kopien.

    References Explained
    Classes and Objects (PHP 5)
    References Explained (by Derick Rethans)

    In einer Schleife, suche ich einen Knoten aus eiem Vector und verändere diesen. Findet diese Veränderung wirklich statt oder ist sie bei erneuertem Suchen wieder rückgängig gemacht worden?

    Kommt auf den Code an, den du dazu verwendest.

    echo "$verabschiedung $name";

    1. Ahaaaaa!!! Stimmt vollkommen. Ich benutze nämlich PHP5 und in der Arbeit PHP4. Daher funktioniert mein Skript daheim einwandfrei, während es in der Arbeit nicht das tut, was es tun sollte.

      Muss mich jetzt also doch durch das Handbuch bezüglich Referenzen arbeiten. Tja, so sterbe ich wenigstens nicht dumm.

      Vielen vielen Dank!

      Martin

      PS:

      echo "$verabschiedung $name";

      Sollte es nicht eher so heissen: echo $verabschiedung." ".$name ;-)