⊗ppOpAdPBR 23 of 107 menu

Overdracht van objecten door referentie in OOP in PHP

Stel dat we de volgende klasse User hebben:

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

Stel dat we een object van deze klasse aanmaken:

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

Stel je nu de volgende situatie voor: je wilt de waarde van variabele $user toewijzen aan een andere variabele, bijvoorbeeld $test.

Als het niet om objecten ging, maar om primitieven, dus om strings, getallen, arrays, enz., dan zou in variabele $test een kopie van de waarde van variabele $user komen.

Dit betekent dat veranderingen in een van de variabelen in de toekomst de waarde van de andere variabele niet zouden wijzigen. Laten we kijken naar een voorbeeld:

<?php $user = 1; $test = $user; // in variabele $test zit nu 1 $test = 2; // in variabele $test zit nu 2, en in $user - nog steeds 1 ?>

Met objecten is het anders - bij toewijzing aan een andere variabele worden objecten niet gekopieerd, maar overgedragen door referentie: dit betekent dat beide variabelen als waarde hetzelfde object hebben. Dit heeft een belangrijke consequentie: als je eigenschappen van het object wijzigt met behulp van de ene variabele, verschijnen deze wijzigingen ook in de tweede variabele.

Laten we dit in de praktijk bekijken. Laten we een object met een gebruiker aanmaken:

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

Laten we het object toewijzen aan een andere variabele:

<?php $test = $user; ?>

Laten we de eigenschap name wijzigen in variabele $test

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

Laten we controleren of het gedeelde object is gewijzigd. Laten we de eigenschap name uitvoeren vanuit variabele $user:

<?php echo $user->name; // geeft 'eric' weer! ?>

Maak een klasse Product, waarin de volgende eigenschappen zitten: name, price.

Maak een object van de klasse Product, schrijf het in variabele $product1.

Wijs de waarde van variabele $product1 toe aan variabele $product2. Controleer dat beide variabelen verwijzen naar hetzelfde object.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren