So klonen Sie ein Objekt in PHP

So klonen Sie ein Objekt in PHP
In einer objektorientierten Programmiersprache fungiert ein Objekt als Referenzvariable. Wenn eine Objektvariable mit dem Zuordnungsoperator einer anderen Variablen zugewiesen wird.

In diesem Tutorial klonen wir ein PHP -Objekt, um eine Kopie des Objekts zu erstellen.

Verwenden des Zuordnungsoperators zum Kopieren eines Objekts

Der Wert der Objektvariablen kann in PHP in eine andere Variable kopiert werden. In PHP kann eine flache Kopie des Objekts mithilfe des Schlüsselworts erstellt werden Klon, und eine tiefe Kopie des Objekts kann mit der Methode erstellt werden __Klon(). Im folgenden Beispiel verwenden wir den Schlüsselwortklon und die Methode __Klon() Wenn eine Objektvariable einer anderen Variablen zugewiesen wird.

Verwenden Sie den folgenden Code, um eine PHP -Datei mit dem Namen zu erstellen ohne Clone.Php, und speichern Sie die Datei im Webserver -Standort. Hier wird eine Klasse mit dem Namen Kurs erklärt; Kurs enthält eine Variable, $ curs_id, und eine Funktion, Einzelheiten(). Die Funktion druckt die Kursdetails basierend auf der Kurs -ID aus. Als nächstes ein Objekt benannt $ objcourse wird erklärt, um auf die Klassenmitglieder zuzugreifen.

Einmal der Wert von $ curs_id wird mit diesem Objekt zugewiesen und die Objektvariable wird zugewiesen $ objcrs, Beide Variablen verwenden den gleichen Speicherort im Speicher für die Referenz. Wenn der Wert eines Objekts geändert wird, wird das andere Objekt automatisch geändert, wenn er kopiert wird.

// eine Klasse definieren
Klassenkurs

// Variable deklarieren
public $ curse_id;
// Methode deklarieren
öffentliche Funktionsdetails ()

// Drucken Sie die Ausgabe basierend auf der Bedingung
if ($ this-> cours_id == 'CSE-202'))

Echo "Kursname: Datenstruktur
";
Echo "Kreditstunde: 2.0
";

sonst wenn ($ this-> cours_id == 'cse-305')

Echo "Kursname: objektorientiertes Programmieren";
Echo "
Kreditstunde: 3.0 ";



// Natürlich Objekt erstellen
$ objcourse = neuer Kurs ();
// Eigenschaft festlegen
$ objcourse-> curse_id = "cse-202";
Echo "Die Ausgabe vor Annahme neuer Wert:

";
// die Methode aufrufen
$ objcourse-> details ();
// Objekt kopieren
$ objcrs = $ objcourse;
// Setzen Sie einen neuen Wert für das kopierte Objekt
$ objcrs-> curse_id = "cse-305";
Echo "
Die Ausgabe nach Anneigung neuer Wert:

";
// Ruf die Methode erneut auf
$ objcourse-> details ();
?>

Sie erhalten die folgende Ausgabe, nachdem Sie das Skript vom Webserver ausgeführt haben. Wenn der Wert von $ objcrs geändert wird, wird der Wert von $ objcourse in denselben Wert geändert.

Verwenden des Klonschlüsselworts zum Kopieren eines Objekts

Der Klon Schlüsselwort kann verwendet werden, um das obige Problem zu lösen. Verwenden Sie den folgenden Code, um eine Datei mit dem Namen zu erstellen Klon.Php. Die gleiche Klasse wird hier verwendet. Das Objekt der Klasse wird mit der Verwendung des anderen Objekts zu einem anderen Objekt kloniert Klon Schlüsselwort zum Erstellen einer Kopie des Objekts. Wenn sich der Wert einer Variablen ändert, ändert er den Wert der anderen Variablen nicht.

// eine Klasse definieren
Klassenkurs

// Variable deklarieren
public $ curse_id;
// Methode deklarieren
öffentliche Funktionsdetails ()

// Drucken Sie die Ausgabe basierend auf der Bedingung
if ($ this-> cours_id == 'CSE-202'))

Echo "Kursname: Datenstruktur
";
Echo "Kreditstunde: 2.0
";

sonst wenn ($ this-> cours_id == 'cse-305')

Echo "Kursname: objektorientierte Programmierung
";
Echo "Kreditstunde: 3.0 ";



// Natürlich Objekt erstellen
$ objcourse = neuer Kurs ();
// Eigenschaft festlegen
$ objcourse-> curse_id = "cse-202";
Echo "Die Ausgabe des Hauptziels vor dem Klonen und Assig für den neuen Wert:

";
// die Methode aufrufen
$ objcourse-> details ();
// Klonobjekt
$ objcrs = klone $ objcourse;
// Setzen Sie einen neuen Wert für das kopierte Objekt
$ objcrs-> curse_id = "cse-305";
Echo "
Die Ausgabe des Hauptobjekts nach Klonen und Assiging neuer Wert:

";
// Rufen Sie die Methode für $ objcourse auf
$ objcourse-> details ();
Echo "
Die Ausgabe des Klonenobjekts:

";
// Rufen Sie die Methode für $ OBJCRS an
$ objcrs-> details ();
?>

Sie erhalten die folgende Ausgabe, nachdem Sie das Skript vom Webserver ausgeführt haben. Wenn der Wert von $ objcrs geändert wird, bleibt der Wert von $ objcourse unverändert.

Verwenden der Methode __clone () zum Kopieren eines Objekts

Der __Klon() Die Methode kann auch verwendet werden, um das obige Problem zu lösen. Erstellen Sie mit dem Code BWLOW eine Datei mit dem Namen Withclonemethod.Php. Die gleiche Klasse wird hier verwendet. Der __Klon() Die Methode wird im Skript mit dem Klonschlüsselwort verwendet. Diese Methode wird automatisch aufgerufen, wenn ein Objekt zu einem anderen Objekt kloniert wird. Laut dem Skript wird für das geklonte Objekt in der ein neuer Wert zugewiesen __Klon() Methode.

// eine Klasse definieren
Klassenkurs

// Variable deklarieren
public $ curse_id;
// __clone () -Methode definieren
öffentliche Funktion __clone ()
$ this-> cours_id = "cse-305";

// Methode deklarieren
öffentliche Funktionsdetails ()

// Drucken Sie die Ausgabe basierend auf der Bedingung
if ($ this-> cours_id == 'CSE-202'))

Echo "Kursname: Datenstruktur
";
Echo "Kreditstunde: 2.0
";

sonst wenn ($ this-> cours_id == 'cse-305')

Echo "Kursname: objektorientiertes Programmieren";
Echo "
Kreditstunde: 3.0 ";



// Natürlich Objekt erstellen
$ objcourse = neuer Kurs ();
// Eigenschaft festlegen
$ objcourse-> curse_id = "cse-202";
Echo "Die Ausgabe des Hauptziels vor dem Klonen und Assig für den neuen Wert:

";
// die Methode aufrufen
$ objcourse-> details ();
// Klonobjekt
$ objcrs = klone $ objcourse;
Echo "
Die Ausgabe des Hauptziels nach dem Klonen:

";
// Rufen Sie die Methode für $ objcourse auf
$ objcourse-> details ();
Echo "
Die Ausgabe des Klonenobjekts:

";
// Rufen Sie die Methode für $ OBJCRS an
$ objcrs-> details ();
?>

Sie erhalten die folgende Ausgabe, nachdem Sie das Skript vom Webserver ausgeführt haben. Hier, wann $ objcrs ist geklont, sein Wert wird durch die geändert __Klon() Methode, aber der Wert von $ objcourse bleibt unverändert. Der Wert von $ objcourse wird vor und nach dem Klonen gedruckt. Der Wert von $ objcrs wird später gedruckt.

Abschluss

Das Klonen ist eine nützliche Funktion von PHP, mit der eine Kopie eines Objekts erstellt werden kann. Beide Klon Schlüsselwort und die __Klon() Die Methode wird in diesem Tutorial über einfache Beispiele angezeigt. Wir hoffen, dass dieses Tutorial Ihnen geholfen hat, das Klonen von Objekten zu verstehen.