Bitte um erläuterung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bitte um erläuterung

    PHP-Code:
    <?php
    class SimpleClass
    {
       
    // Memberdeklaration
       
    public $var 'ein Vorgabewert';

       
    // Methodendeklaration
       
    public function displayVar() {
           echo 
    $this->var;
       }
    }

    $instanz = new SimpleClass();

    $zugewiesen  =  $instanz;
    $referenz    =& $instanz;

    $instanz->var ='neuer wert';

    $instanz null// $instanz und $referenz werden null

    var_dump($instanz);
    var_dump($referenz);
    var_dump($zugewiesen);
    ?>
    Also, ich habe folgenden Code von php.net Seite. Irgendwie check ich den aber nicht ganz.
    Also, $instanz bildet eine Instanz vom "SimleClass-Objekt"
    $zugewiesen hat dann die gleiche Referenz wie $instanz.
    Was das "=&" bedeutet ist mir auch nicht ganz klar .
    Danach wird $instanz der wert für die var-Variable zugewiesen. Wieso hat dann $zugewiesen den Wert 'neuer wert'?
    Wieso bewirkt $instanz = null; dass $instanz und $referenz werden null aber $zugewiesen nicht????

  • #2
    Re: Bitte um erläuterung

    Man informiere sich über Referenzen.
    Mit $zugewiesen = $instanz
    weist du $zugewiesen die Referenz auf das Objekt zu, mit
    $referenz =& $instanz
    weist du $referenz eine Referenz auf die Variable $instanz zu, d.h. wenn du $referenz ändert, änderst du auch $instanz und vice versa, das Objekt bleibt dabei jedoch vollkommen unberührt, genauso wie der Pointer in $zugewiesen, da das nur eine Kopie ist.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar

    Lädt...
    X