Wie erstelle ich eine Kopie eines Objekts in PHP?

In PHP kannst du eine Kopie eines Objekts mit dem Schlüsselwort "clone" erstellen.

Beispiel:

<?php

class SomeClass
{
  public $name = "John";
}

$original_object = new SomeClass();
$copy_object = clone $original_object;

echo "Original object name: " . $original_object->name . "\n";
echo "Copy object name: " . $copy_object->name . "\n";

Dies erstellt eine neue Instanz des Objekts mit den gleichen Eigenschaftswerten wie das Originalobjekt. Bitte beachten Sie, dass dies eine flache Kopie erstellt. Wenn das Originalobjekt Eigenschaften hat, die auf andere Objekte verweisen, wird die Kopie immer noch auf die gleichen Objekte verweisen.

Sie können auch serialize und unserialize verwenden, um eine tiefe Kopie eines Objekts zu erstellen:

<?php

class SomeClass
{
  public $name = "John";
}

$original_object = new SomeClass();
$copy_object = unserialize(serialize($original_object));

echo "Original object name: " . $original_object->name . "\n";
echo "Copy object name: " . $copy_object->name . "\n";

Dies erstellt eine neue Instanz des Objekts mit den gleichen Eigenschaftswerten wie das Originalobjekt und es ist eine tiefe Kopie.