Simon Bergamin: Problem beim Referenzieren von Objekten

Beitrag lesen

Hoi Eddie

Dein Problem hat mich gerade interessiert, da ich JAVA gelernt habe und im Moment auch PHP programmiere. Du musst ein bisschen in C denken:

$useReferences = new UseReferences;
$myObject = &$useReferences->getMyObject(0);
echo $myObject."<br />";
$myObject++;
$nextObject = $useReferences->getMyObject(0);
echo $nextObject."<br />";
$nextObject++;
$nextObject = $useReferences->getMyObject(0);
echo $nextObject."<br />";

class UseReferences
{
 function getMyObject($index)
 {
     return $this->array[$index];
 }

var $array = array(1, 2, 3);
}

Das gibt dir 1 2 2 aus. Siehst du das & beim ersten Aufruf von useReferences? Das ist der ganze Trick, sonst bekommst du nur Kopien zurück, wie beim 2ten bzw. 3ten Aufruf der Methode.

Und hier findest du ein paar weiter Infos über das Thema: http://ch.php.net/manual/en/language.references.php

Hoffe, ich konnte dir helfen und das obige stimmt auch alles ;)

Gruss
Simon

Hallo allerseits,

aus irgendeinem Grund habe ich ein Problem beim Referenzieren eines Objekts. Sieht so aus, als wuerde ich stattdessen eine Kopie erhalten.

Vereinfacht sieht das so aus:

function getMyObject($index)
{
    $myObject = $this->OBJECTS[$index];
    return $myObject;
}

Ändere ich dann eine Eigenschaft auf $myObject, dann wirkt sich das dummerweise nicht auch auf OBJECT[$index] aus.
Was mache ich falsch?

Danke, Eddie