Jeg sidder med et lille problem. Jeg har 3 filer, class1.php , der.php og test.php
I får lige koden til dem her.
class1.php
<?php
class base
{
var $a;
function base()
{
$this->a = array();
}
function add($b)
{
array_push($this->a,$b);
}
function getArray()
{
print_r($this->a);
}
}
?>
der.php
<?php
class der
{
var $base;
function der($b)
{
$this->base = &$b;
}
function addSomethings()
{
$this->base->add("hej");
$this->base->add("Walle er sej");
$this->base->getArray();
}
}
?>
test.php
<?php
require_once("class1.php");
require_once("der.php");
$a = new base();
$d = new der($a);
$d->addSomethings();
$a->getArray();
?>
Som i kan se har jeg en base class med et array. hele objektet sender jeg videre til det objekt som bliver lavet ud fra der klassen. Jeg opdaterer her arrayet i der klassen, men når jeg, bagefter i test.php prøver at skrive det ud er arrayet tomt, men når jeg udskriver det i selve der klassen, så bliver den opdateret. Hvordan kan det være? Er det fordi at hele objektet jeg sender med bare bliver kopieret? Hvordan løser jeg dette problem? Jeg har prøvet at smide nogle refferencer ind, men jeg fik ingenting tilbage andet end det samme som før. Jeg har nok gjort det forkert.
Håber en eller anden kan hjælpe.
Mvh. Martin Slot
Slot - All your base are belong to us
http://www.sigsys.dk