phpbar.de logo

Mailinglisten-Archive

[php] Objekte und Referenzen

[php] Objekte und Referenzen

Tobias Nix php_(at)_phpcenter.de
Fri, 05 Apr 2002 11:51:06 +0200


Hallo Liste,

ich möchte im Konstruktor der Klasse bar eine Instanz der 
Klasse foo erzeugen und Instanz bar an diese per 
Referenz übergeben.

Leider bekomme ich keine Referenz übergeben. 
Irgendwie erhalte ich ein neues Objekt. Wenn
ich die entsprechende teile im Script durch dir
auskommentierungen ersetze läuft es seltsamer weise.

Hier das Bsp. Skript:

<?php
class foo {
    var $bar;
//  function foo(&$deoaa, $bar) {
    function foo(&$bar) {
        $this->bar = & $bar;
    }
    function doit() {
        var_dump($this->bar->get()); // erwartet 6 -> ausgabe null
        $this->bar->set(6);
        var_dump($this->bar->get()); // erwartet 6 -> ausgabe 6
    }
}

class bar {
    var $value =null;
    var $foo;
    function bar() {
//      $this->foo = new foo($this->value, $this);
        $this->foo = new foo($this);
    }
    function set($value) {
        $this->value = $value;
    }
    function get() {
        return $this->value;
    }
}
print "<pre>";
$demo = new bar();
$demo->set(5    );
var_dump($demo->get());  // erwartet 5 -> ausgabe 5
$demo->foo->doit();
var_dump($demo->get()); // erwartet 6  -> ausgabe 5
?>


Hat jemand eine Idee, wo der Fehler liegt ?

Gruss,
Tobias.


php::bar PHP Wiki   -   Listenarchive