⊗ppOpAdPBR 23 of 107 menu

Übergabe von Objekten als Referenz in OOP in PHP

Nehmen wir an, wir haben die folgende Klasse User:

<?php class User { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Nehmen wir an, wir erstellen ein Objekt dieser Klasse:

<?php $user = new User('john', 30); ?>

Stellen Sie sich nun die folgende Situation vor: Sie möchten den Wert der Variable $user einer anderen Variable zuweisen, zum Beispiel $test.

Wenn es nicht um Objekte, sondern um Primitive ginge, also um Zeichenketten, Zahlen, Arrays usw., dann würde in die Variable $test eine Kopie des Werts der Variable $user gelangen.

Das bedeutet, dass Änderungen an einer der Variablen in der Zukunft den Wert der anderen Variable nicht verändern würden. Sehen wir uns ein Beispiel an:

<?php $user = 1; $test = $user; // in der Variable $test ist jetzt 1 $test = 2; // in der Variable $test ist jetzt 2, und in $user - nach wie vor 1 ?>

Bei Objekten ist es anders - bei Zuweisung an eine andere Variable werden Objekte nicht kopiert, sondern als Referenz übergeben: Das bedeutet, dass beide dieser Variablen als Wert ein und dasselbe Objekt haben. Dies hat eine wichtige Konsequenz: Wenn man einige Eigenschaften des Objekts mit Hilfe einer Variable ändert, werden in der zweiten Variable dieselben Änderungen erscheinen.

Lassen Sie uns das praktisch ausprobieren. Erstellen wir ein Objekt mit einem User:

<?php $user = new User('john', 30); ?>

Weisen wir das Objekt einer anderen Variable zu:

<?php $test = $user; ?>

Ändern wir die Eigenschaft name in der Variable $test

<?php $test->name = 'eric'; ?>

Lassen Sie uns prüfen, ob sich das gemeinsame Objekt geändert hat. Geben wir die Eigenschaft name aus der Variable $user aus:

<?php echo $user->name; // gibt 'eric' aus! ?>

Erstellen Sie eine Klasse Product, in der es die folgenden Eigenschaften gibt: name, price.

Erstellen Sie ein Objekt der Klasse Product, schreiben Sie es in die Variable $product1.

Weisen Sie den Wert der Variable $product1 der Variable $product2 zu. Prüfen Sie, dass beide Variablen auf ein und dasselbe Objekt verweisen.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen