[php] array wordt niet groter in class

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het volgende versimpelde voorbeeld wat mijn probleem weergeeft.

class Test
{
var values;

function Test()
{
$this->values = Array();
}

function add_value($value)
{
array_push($this->values, $value);
}

function remove_last()
{
array_pop($this->values);
}
}

Het toevoegen van een waarde aan de array gaat prima. Maar als ik nu de laatste waarde wil verwijderen kom ik erachter dat de array leeg is, een lengte van 0 heeft. Als ik bijhoudt hoe groot de array is in de add_value methode kan ik zien dat ie groter word, maar zodra ik kijk hoe groot hij is in de remove_last methode is ie 0, alsof ie nooit gevult is :? .
Ik heb al op verschillende plekken rondgekeken en ook hier natuurlijk de zoekfunctie gebruikt, maar met de info die ik gevonden heb kom ik nog niet echt verder.

heeft 1 van jullie heldere geesten een idee wat ik zo fout doe?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

P&W FAQ - De "quickstart"

Het zou wel fijn zijn als je de taal erbij vermeldde (we hebben immers geen glazen bol waar we alle info die jij niet noemt uit kunnen halen), en bovendien kun je je code het beste tussen [norml][code=[/]taal[norml]]...[/code] of
PHP:
1
...
[/] tags plaatsen

Ook is "Class vraagje" niet echt een duidelijke omschrijving van je probleem

Wat je probleem betreft: waarschijnlijk maak je steeds kopieen ipv dat je referenties gebruikt. Geef eens wat code van het gebruik van je klasse?

[ Voor 5% gewijzigd door .oisyn op 15-04-2003 10:45 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • BRAINLESS01
  • Registratie: April 2003
  • Laatst online: 12-09 09:30
kijk eens of je geen tikfout hebt gemaakt?... ik heb wel eens 2 letters omgedraaid om vervolgens een tijd bezig te zijn met 'het werkt niet... maar het is wel goed' :P

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb dit ff getest en het werkt perfect hier. Ik heb alleen een $ voor value gezet en een return in de functie gezet:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?

class Test{
    var $values;
    
    function Test(){
        $this->values = Array();
    }
    
    function add_value($value){
        array_push($this->values, $value);
    }
    
    function remove_last(){
        return array_pop($this->values); 
    }
}

$blaat = new Test;
$blaat->test();
$blaat->add_value('test1');
$blaat->add_value('test2');
print $blaat->remove_last();

?>