/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Variabler i et objekt virker ikke - bug?
Fra : Bjarke Walling Peter~


Dato : 29-11-03 18:32

Hej nyhedsgruppe.

Jeg er sikker på at jeg gør et eller andet galt, men jeg ved ikke hvad.
Håber nogen vil hjælpe mig. Jeg har følgende kode, men får ikke det
forventede output - hvorfor?


<?php

class clsTest {

var $varA;
var $varB;

function clsTest() {
echo 'A: ' . $this->$varA . ' - B: ' . $this->$varB . '<br>';
$this->$varA = 'A';
echo 'A: ' . $this->$varA . ' - B: ' . $this->$varB . '<br>';
$this->$varB = 'B';
echo 'A: ' . $this->$varA . ' - B: ' . $this->$varB . '<br>';
}

}

$objTest = new clsTest();

?>


Forventet output:
A: - B:
A: A - B:
A: A - B: B

I stedet får man:
A: - B:
A: A - B: A
A: B - B: B

Det kunne se ud som om at den altid outputter det som er indsat i den sidste
variabel - derfor outputter den A for begge i anden linie og B for begge i
tredje linie.

Håber der nogen der har en løsning - for det går da virkelig ikke, hvis man
ikke kan bruge variabler i et objekt.

Jeg har problemet både på min testserver (PHP 4.3.1) og produktionsserver
(PHP 4.2.2).

På forhånd tak!

Mvh. Bjarke



 
 
Claus Rasmussen (29-11-2003)
Kommentar
Fra : Claus Rasmussen


Dato : 29-11-03 19:30

Bjarke Walling Petersen wrote:
> Jeg har følgende kode, men får ikke det
> forventede output - hvorfor?

Syntaksen for at referere en intern variabel er ikke $this->$var, men
$this->var - altså en dollarguf mindre. Følgende burde give det ønskede
output:

<?php

class clsTest {

var $varA;
var $varB;

function clsTest() {
echo 'A: ' . $this->varA . ' - B: ' . $this->varB . '<br>';
$this->varA = 'A';
echo 'A: ' . $this->varA . ' - B: ' . $this->varB . '<br>';
$this->varB = 'B';
echo 'A: ' . $this->varA . ' - B: ' . $this->varB . '<br>';
}

}

$objTest = new clsTest();

?>

/claus

--
http://techwriter.dk/en/writing/good-technical-writer.html - do you qualify?


Bjarke Walling Peter~ (29-11-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 29-11-03 19:32

Claus Rasmussen <nothanks@dev.null> skrev:
> Bjarke Walling Petersen wrote:
> > Jeg har følgende kode, men får ikke det
> > forventede output - hvorfor?
>
> Syntaksen for at referere en intern variabel er ikke $this->$var, men
> $this->var - altså en dollarguf mindre. Følgende burde give det ønskede
> output:
[klip]

Oh... mange, mange tak! Det var da også uheldigt at jeg ikke lagde mærke til
det, da jeg læste PHP manualen.

Mvh. Bjarke



Søg
Reklame
Statistik
Spørgsmål : 177518
Tips : 31968
Nyheder : 719565
Indlæg : 6408647
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste