Facebook
Twitter
Google+
Kommentare
0

Klonen von Objekten in PHP

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.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen