Detaillierte Erklärung der __clone()-Methode in PHP

藏色散人
Freigeben: 2023-04-07 06:48:02
Original
5729 Leute haben es durchsucht

__clone(), wird aufgerufen, wenn die Objektkopie abgeschlossen ist

In den meisten Fällen müssen wir ein Objekt nicht vollständig kopieren, um seine Eigenschaften zu erhalten. Aber es gibt einen Fall, in dem es wirklich benötigt wird: wenn Sie ein GTK-Fensterobjekt haben, das fensterbezogene Ressourcen enthält. Möglicherweise möchten Sie ein neues Fenster kopieren und alle Eigenschaften des ursprünglichen Fensters beibehalten, es muss jedoch ein neues Objekt sein (denn wenn es sich nicht um ein neues Objekt handelt, wirken sich Änderungen in einem Fenster auf das andere Fenster aus).

Es gibt eine andere Situation: Wenn Objekt A einen Verweis auf Objekt B speichert, Sie Objekt A kopieren und möchten, dass das darin verwendete Objekt nicht mehr Objekt B, sondern eine Kopie von B ist, müssen Sie dies tun Holen Sie sich eine Kopie von Objekt A.

Funktion:

Das Kopieren von Objekten kann über das Schlüsselwort clone erfolgen (dadurch wird nach Möglichkeit die Methode __clone() des Objekts aufgerufen). Die Methode __clone() in einem Objekt kann nicht direkt aufgerufen werden.

Syntax:

$copy_of_object = clone $object;
Nach dem Login kopieren

Hinweis:

Wenn das Objekt kopiert wird, wird PHP 5 auf allen Eigenschaften des Objekts ausgeführt Objekt Eine flache Kopie. Alle Referenzeigenschaften sind weiterhin Verweise auf die ursprünglichen Variablen.

Wenn der Kopiervorgang abgeschlossen ist und die Methode __clone() definiert ist, wird die Methode __clone() im neu erstellten Objekt (dem durch das Kopieren generierten Objekt) aufgerufen und kann zum Ändern des Werts von verwendet werden Attribut (falls erforderlich).

Sehen Sie sich den Code an:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    public function __clone()
    {
        echo __METHOD__."你正在克隆对象<br>";
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
$person2 = clone $person;
var_dump(&#39;persion1:&#39;);
var_dump($person);
echo &#39;<br>&#39;;
var_dump(&#39;persion2:&#39;);
var_dump($person2);
Nach dem Login kopieren

Sehen Sie sich das Ergebnis an:

Person::__clone你正在克隆对象
string(9) "persion1:" object(Person)#1 (3) { ["sex"]=> string(3) "男" ["name"]=> string(6) "小明" ["age"]=> int(25) } 
string(9) "persion2:" object(Person)#2 (3) { ["sex"]=> string(3) "男" ["name"]=> string(6) "小明" ["age"]=> int(25) }
Nach dem Login kopieren

Klonen erfolgreich.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der __clone()-Methode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage