Heim Backend-Entwicklung PHP-Tutorial Objekte in PHP kopieren und klonen

Objekte in PHP kopieren und klonen

Jun 28, 2018 pm 03:35 PM

* Kopieren und Klonen von Objekten

* 1. Standardmäßig werden Objekte als Referenz übergeben (eigentlich eine Kopie der Objektkennung, auf die später noch näher eingegangen wird)

* 2. Mit anderen Worten, die beiden Objektvariablen beziehen sich tatsächlich auf dasselbe Objekt

* 3. Wenn Sie ein neues Objekt erstellen möchten, müssen Sie das Schlüsselwort clone verwenden, um das aktuelle Objekt zu klonen

* 4 .Wenn bei Verwendung des Schlüsselworts clone __clone() in der Klasse vorhanden ist, wird diese automatisch aufgerufen

* 5. Die Methode __clone() wird für das neu erstellte Objekt

* 6.__clone( )-Methode kann steuern, was wir kopieren und welche Grundoperationen beim Klonen ausgeführt werden sollen

class Member
{
    //声明三个私有属性
    private $name;  //会员名
    private $email; //会员邮箱
    private $score; //会员积分
    
    //构造方法
    public function __construct($name='',$email='',$score=0)
    {
        $this->name = $name;
        $this->email = $email;
        $this->score = $score;
    }
    
    //查询器(暂时省略访问控制)
    public function __get($name)
    {
        return $this->$name;
    }
    
    //设置器(暂时省略访问控制)
    public function __set($name,$value)
    {
        $this->$name = $value;
    }
    
    //克隆魔术方法在对象克隆时自动调用,针对新对象进行初始化操作
    public function __clone()
    {
        $this->score = 0;
    }
    
}
Nach dem Login kopieren

//Instanziieren Sie die Mitgliedsklasse Member und erstellen Sie das Mitgliedsobjekt $member

$member = new Member('peter','peter@php.cn',1000);
Nach dem Login kopieren

//Zugriffstest

echo $member->score;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

//Kopiere das Mitgliedsobjekt

$member1 = $member;
Nach dem Login kopieren

//Verwende den neuen Variablennamen $member1, um die Objektinformationen zu aktualisieren

$member1->score = 2000;
Nach dem Login kopieren

//Verwende den neuen Objektvariablenname $member1 für den Zugriff auf

echo $member1->score;
echo &#39;<hr>&#39;;
Nach dem Login kopieren

//Verwenden Sie den ursprünglichen Objektnamen $member für den Zugriff auf

echo $member->score;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

* Fazit:

* 1. Das Ergebnis der neuen Variablen Die Änderung spiegelt sich in der ursprünglichen Objektvariablen

* 2 wider. Erklären Sie, dass diese beiden Variablen tatsächlich auf dasselbe Objekt verweisen

* 3. Das heißt, das Objekt wird standardmäßig als Referenz übergeben

* 4. Mit anderen Worten, der zweite Variablenname $member1 Es ist nur ein Alias ​​​​der ursprünglichen Variablen und es wird kein neues Objekt erstellt

* 5. Es kann verstanden werden, dass es einfach ist ein neuer Name für den Bezeichner des ursprünglichen Objekts

var_dump($member1);  //对象id=1
var_dump($member);   //对象id=1
Nach dem Login kopieren

//Erklärung: $ member1 und $member sind zwei identische Objekte, nur mit unterschiedlichen Namen

//Was sollten Sie tun, wenn Sie möchten? Ein völlig neues Objekt erstellen? Sie müssen das Schlüsselwort verwenden: clone

$member2 = clone $member;
Nach dem Login kopieren

//Überprüfen wir zunächst den Score-Attributwert der Objektvariablen $member2

echo $member2->score; //目前是原始值2000
Nach dem Login kopieren

//Ändern Sie den Score-Wert

$member2->score = 5000;
echo &#39;<hr>&#39;;
Nach dem Login kopieren

//Überprüfen Sie die Punktzahl in $member2 noch einmal

echo $member2->score; //新值5000
echo &#39;<hr>&#39;;
Nach dem Login kopieren

//Überlegen Sie, ob sich meine Änderung auf den Bewertungsattributwert der ursprünglichen $member-Variablen auswirkt?

echo $member->score; //发现原对象的score属性值仍为2000,未发生变化
Nach dem Login kopieren

//Warum ist das so? Weil wir die Klontechnologie verwendet haben, um zwei völlig unterschiedliche Objektvariablen zu erstellen

//Überprüfung unten

var_dump($member); //变量id是1
var_dump($member2); //变量id是2
Nach dem Login kopieren

//Die IDs dieser beiden Objektvariablen sind unterschiedlich, was darauf hinweist Es handelt sich um zwei völlig unterschiedliche Objekte

//Das Folgende ist eine Aufgabe: Beim Erstellen eines neuen Mitgliedsobjekts die Punkte des Mitglieds auf Null löschen? Was ist zu tun?

//Erstellen Sie einen __Klon () in der Magic-Methode der Mitgliedsklasse klonen, das geklonte neue Objekt vorverarbeiten

//Erneut demonstrieren

//Aktuelle Punkte anzeigen

echo $member->score;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

//Zum Erstellen klonen ein brandneues Objekt $member3

$member3 = clone $member;
Nach dem Login kopieren

//Überprüfen Sie den Score-Wert des neuen Objekts $member3, um zu überprüfen, ob __clone() in der Klasse wirksam ist?

echo &#39;<hr>&#39;;
echo $member3->score; //0,说明克隆魔术方法已经生效
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonObjekte in PHP kopieren und klonen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist schneller: PHP-Objektoperation oder Array-Operation? Was ist schneller: PHP-Objektoperation oder Array-Operation? Jul 12, 2023 pm 03:04 PM

PHP-Array-Operationen sind schneller als PHP-Objektoperationen: 1. Objektoperationen umfassen Schritte wie das Erstellen von Objekten, das Aufrufen von Methoden und den Zugriff auf Eigenschaften, deren Leistung möglicherweise langsamer ist. 2. Array-Operationen sind eine spezielle Art von Variablen. Kann mehrere Werte speichern, verschiedene Methoden und Funktionen für Arrays verwenden und schnelle und effiziente Operationen für Arrays ausführen.

So konvertieren Sie ein PHP-Array in ein Objekt in einer Schleife So konvertieren Sie ein PHP-Array in ein Objekt in einer Schleife Aug 10, 2023 pm 02:44 PM

Es gibt zwei Möglichkeiten, ein PHP-Array in einer Schleife in ein Objekt zu konvertieren: 1. Verwenden Sie die erzwungene Typkonvertierung, um das Array in ein Objekt zu konvertieren. Die Schlüssel des Arrays müssen gültige Objektattributnamen sein. 2. Erstellen Sie ein neues Objekt und Fügen Sie die Elemente des Arrays in das Objekt hinzu, unabhängig davon, ob die Array-Schlüssel als Eigenschaftsnamen des Objekts gültig sind.

Was ist der Unterschied zwischen PHP-Objekten und Arrays? Was ist der Unterschied zwischen PHP-Objekten und Arrays? Aug 24, 2023 pm 05:02 PM

Der Unterschied zwischen PHP-Objekten und Arrays ist: 1. Das Objekt ist ein zusammengesetzter Datentyp, während das Array ein einfacher Datentyp ist. 2. Auf die Eigenschaften und Methoden des Objekts kann über die Instanz des Objekts zugegriffen werden Auf das Array kann über den Index zugegriffen werden. 3. Ein Objekt ist eine Entität, die Eigenschaften und Methoden kapselt, während ein Array eine geordnete Sammlung von Elementen ist. 4. Objekte werden in PHP als Referenz übergeben, während Arrays als Wert übergeben werden PHP 5. Objekte eignen sich zur Beschreibung von Entitäten mit Zustand und Verhalten, während Arrays zum Speichern und Verarbeiten großer Mengen ähnlicher Daten geeignet sind.

So verwenden Sie Objektvariablen in PHP So verwenden Sie Objektvariablen in PHP Sep 13, 2023 pm 12:59 PM

Für die Verwendung von Objektvariablen in PHP sind spezifische Codebeispiele erforderlich. In PHP erleichtert die Verwendung von Objektvariablen die Verwaltung und Manipulation von Objekten. Eine Objektvariable ist ein Datentyp, der Objektinstanzen speichert. Das Objekt kann durch Aufrufen von Methoden der Klasse und Zugriff auf die Eigenschaften der Klasse manipuliert werden. Im Folgenden wird die Verwendung von Objektvariablen in PHP ausführlich vorgestellt und entsprechende Codebeispiele bereitgestellt. Objekte erstellen In PHP können Sie das Schlüsselwort new zum Erstellen von Objekten verwenden. Ein Beispiel lautet wie folgt: classCar{public$colo

Sind PHP-Arrays Objekte? Sind PHP-Arrays Objekte? Jul 22, 2022 pm 05:24 PM

PHP-Arrays sind keine Objekte. In PHP sind Arrays und Objekte zwei verschiedene Datentypen. Ein Array ist eine Sammlung geordneter Daten und ein Objekt ist das Ergebnis der Instanziierung einer Klasse, die nicht nur Eigenschaften, sondern auch Methoden enthält. Objekte können Operationen an Daten kapseln, Arrays jedoch nicht.

Erfahren Sie, wie Sie Objektmethoden in PHP aufrufen Erfahren Sie, wie Sie Objektmethoden in PHP aufrufen Mar 28, 2023 pm 03:00 PM

PHP ist eine sehr beliebte Programmiersprache, mit der sich verschiedene Anwendungen, insbesondere Webanwendungen, entwickeln lassen. In PHP ist die objektorientierte Programmierung eine der wichtigsten Funktionen. In diesem Artikel wird untersucht, wie Objektmethoden in PHP aufgerufen werden.

So erhalten Sie alle Methoden in einem Objekt in PHP So erhalten Sie alle Methoden in einem Objekt in PHP Mar 23, 2023 am 11:12 AM

In PHP ist es sehr einfach, alle Methoden in einem Objekt abzurufen, was durch die Verwendung der ReflectionClass-Klasse in der PHP-Standardbibliothek erreicht werden kann. Die ReflectionClass-Klasse stellt eine Methode bereit, um alle Informationen einer Klasse in PHP wiederzugeben, einschließlich Klassenname, Attribute, Methoden usw. Im Folgenden stellen wir detailliert vor, wie Sie die ReflectionClass-Klasse verwenden, um alle Methoden in einem Objekt abzurufen.

Funktionsinstanzen von PHP-Objekten und -Klassen Funktionsinstanzen von PHP-Objekten und -Klassen Jun 16, 2023 am 09:51 AM

PHP ist eine objektorientierte Programmiersprache, die die Konzepte von Objekten und Klassen unterstützt. In PHP ist ein Objekt eine Instanz einer Klasse, die Daten und Funktionen, sogenannte Methoden, speichern kann. Durch die Verwendung von Funktionen von PHP-Objekten und -Klassen können wir den Code einfach organisieren und die Wiederverwendbarkeit des Codes verbessern. In diesem Artikel stellen wir Beispiele für Funktionen von PHP-Objekten und -Klassen und deren Funktionalität vor. Konstruktor (__construct) Ein Konstruktor ist eine Funktion, die automatisch aufgerufen wird, wenn ein Objekt erstellt wird. Es wird verwendet, um die Eigenschaften des Objekts zu initialisieren und auszuführen

See all articles