Kopie van een object linkt de kenmerken!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Chris Avontuur

Chris Avontuur

08/09/2009 22:46:00
Quote Anchor link
Als ik een object heb met de naam obj1 en ik kopieer dit als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$obj1
= new class1();
$obj1->kenmerk = "Eerste";
$obj2 = $obj1;
$obj2->kenmerk = "Tweede";
var_dump($obj1->kenmerk,$obj2->kenmerk);
?>

Het gekke is dat nu de kenmerken gelijk zijn nl: "Tweede"

Is dit een bug?
Gewijzigd op 01/01/1970 01:00:00 door Chris Avontuur
 
PHP hulp

PHP hulp

25/04/2024 08:31:27
 

08/09/2009 22:51:00
Quote Anchor link
Nee, dit is een bekend fenomeen. Zie language.oop5.cloning.
Edit: Nog een link en nog een.
Gewijzigd op 01/01/1970 01:00:00 door
 
Emmanuel Delay

Emmanuel Delay

09/09/2009 13:08:00
Quote Anchor link
$obj2 = $obj1;
Dit is geen kopie.

Objecten in php worden by reference doorgegeven.
Wat jij doet, is twee variabelen maken die naar het echte object wijzen.

Wil jij een object kopiëren, dan doe je

$obj2 = clone $obj1;

Maar lees vooral toch wat staat in de links die Karl postte.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Chris Avontuur

Chris Avontuur

09/09/2009 15:32:00
Quote Anchor link
@ Karl & Emmanuel Delay,

Thnx, Heeft me gisteren nogal wat zweetdruppels gekost voor ik er achter was.
 
Jurgen assaasas

Jurgen assaasas

09/09/2009 16:11:00
Quote Anchor link
PHP 5 is by reference en PHP 4 is by value betreft objecten.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.