Eddie: Referenz zurückgeben statt Kopie

Hallo allerseits,
koennt ihr mir sagen, wie ich in einer Funktion, bspw.

function getValues()
{
   return $this->VALUES;
}

eine Referenz zurückgeben kann? Bisher wirken sich nämlich Änderungen am zurückerhaltenen Array nicht auf das Original aus.
Danke Euch,
Eddie

  1. Sers,

    dazu musst du in der Funktion eine Referenz "empfangen":

    function veraendere(&$array) {
       array_push($array, "neue Zeile");
    }
    siehe dazu auch: http://www.dynamic-webpages.de/php/language.references.php

    Gruß,
    Benne

  2. Hi!

    koennt ihr mir sagen, wie ich in einer Funktion, bspw.

    function getValues()
    {
       return $this->VALUES;
    }

    eine Referenz zurückgeben kann? Bisher wirken sich nämlich Änderungen am zurückerhaltenen Array nicht auf das Original aus.

    Z.B. so: http://de3.php.net/manual/de/language.references.return.php
    Wobei das letztendlich genau dasselbe ist wie "$referenz =& $objekt->VALUES;"

    Also innerhalb einer Klasse gibt es halt $this, was eine Referenz auf das aktuelle Objekt ist. Von außen sollte man IMHO nach Möglichkeit zwar get...() Methoden verwenden um Eigenschaften des Objektes zu ermitteln, aber um die Eigenschaften des Objektes zu verändern sollte man set...() Methoden verwenden, und nicht mit Referenzen arbeiten, da dies IMHO unnötige Abhängigkeiten schafft.

    Möglicherweise solltest Du den Code der über Referenzen die Variablen verändern soll in dieselbe Klasse packen wie die Variablen selber, denn da könntest Du mit $this arbeiten.

    Grüße
    Andreas