Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rekurencja + OOP
Forum PHP.pl > Forum > PHP
barcin
Witam szanownych forumowiczów,

mam pytanie czy php w wersji 4.x obluguje rekrurencyjne wywoływanie metod? Szukalem na php.net i w googlach, ale znalazlem tylko "niby" dzialajcy kod dla php 5.

Moj problem polega na tym, ze jak mam klase

  1. <?php
  2. class Toolbox
  3. {
  4. function SearchInArray($search,$array)
  5. {
  6. //jakis tam kod
  7. //chce wywolac metode
  8. this->SearchInArray($d,$e);
  9.  }
  10. }
  11. ?>


to dostaje błąd:
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /tools/toolbox.php on line 20

Będe wdzięczny za pomoc,

Pozdrawiam,

barcin
siemakuba
pewnie ze działa, szybki bananalny test:

  1. <?php
  2. class RecTest
  3. {
  4. var $maxVal = 5;
  5. var $curVal = 0;
  6.  
  7. function RecTest() {}
  8.  
  9. function RunRec()
  10. {
  11. if ($this->curVal == $this->maxVal)
  12. {  
  13. echo 'Koniec rekurencji';
  14. return;
  15. }
  16.  
  17. $this->curVal++;
  18. echo 'Rekurencyjnie zwiekszylem $this->curVal do '.$this->curVal.'<br>';
  19. $this->RunRec();
  20. }
  21. }
  22.  
  23. $c = new RecTest;
  24. $c->RunRec();
  25. ?>


wynik:
Kod
Rekurencyjnie zwiekszylem $this->curVal do 1
Rekurencyjnie zwiekszylem $this->curVal do 2
Rekurencyjnie zwiekszylem $this->curVal do 3
Rekurencyjnie zwiekszylem $this->curVal do 4
Rekurencyjnie zwiekszylem $this->curVal do 5
Koniec rekurencji

musisz miec inny bład w kodzie, bo zakladam że brak $ tu
  1. <?php
  2. this->SearchInArray($d,$e);
  3. ?>
to literówka :)

pozdr.
barcin
ok, nie było pytania, to ta literówka była powodem błędu, zmyliło mnie to, że kilka razy podchodziłem do tematu, przerabiałem kod kilka razy i nie zauważyłem tego prostackiego błędu, dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.