• Klonen von Objekten in PHP

    von am 23. Dezember 2008

    Nach einer sehr theoretischen Abschweifung gestern, heute mal wieder ein Anfänger Thema. Und zwar wollen wir einfach mal genau ansehen, was passiert, wenn man ein Objekt klont.Wir klonen Objekte immer dann, wenn wir eine sehr ähnliche Kopie brauchen. Natürlich kann es auch sein, dass es bei manchen Objekten die Initialisierung sehr kostspielig ist, sodass es günstiger ist einen Prototypen zu klonen. Warum auch immer wir einen Clone brauchen, die Technik, die dahinter steckt ist immer die gleiche. Wir haben ein Ursprungsobjekt, rufen darauf ein clone auf und erstellen somit ein neues Objekt.

    <?php
    
      class A
      {
        public $isClone;
    
        public function __contruct( )
        {
          $this->isClone = false;
        }
    
        public function __clone( )
        {
          $this->isClone = true;
        }
      }
    
      $a1 = new A;
      $b2 = clone( $a1 );
    
    ?>

    Nachdem eine Kopie des Objektes $a erstellt wurde, wird die Methode __clone( ) automatisch auf Objekt $b aufgerufen. Dies würde in unserem Fall einfach das Attribut isClone auf true setzen. Der Konstruktor wird für $b nicht mehr aufgerufen, da man davon ausgeht, dass $a bereits ein voll instanziertes Objekt ist und somit der Konstruktor bereits aufgerufen wurde.

    Was vielleicht noch wichtig ist: beim klonen werden alle primitiven Typen kopiert und alle Verweise auf Objekte bleiben Verweise.

    Das war auch schon der kleine Ausflug ins Land des Klonenes, ich denke aber, dass ich in einen späteren Artikel noch einmal detaillierter auf das Thema eingehen werde.

    Nils Langner

    Auch wenn Ihr es mir nicht glauben werdet, aber ich habe nichts gegen PHP. Ich rege mich einfach nur gerne auf. Ok so schlimm ist es auch nicht. Eigentlich wollte ich schon immer einen Blog haben und da ...

    Zum Profil von Nils Langner

    Keine Kommentare »

    Noch keine Kommentare

    RSS Feed für Kommentare zu diesem Artikel. TrackBack URL

    Hinterlasse einen Kommentar

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.