Functii recursive
Last Updated: Sep 15 2009 15:28, Started by
phinkuletz
, Sep 15 2009 12:25
·
0
#19
Posted 15 September 2009 - 14:15
urban, deci pur si simplu am luat codurile puse de tine si le-am dat paste intr-o pagina nou-nouta. Nu rezulta nimic.
|
#20
Posted 15 September 2009 - 14:17
daca pui intr-o pagina urmatorul cod:
<?PHP phpinfo(); ?> ce iti afiseaza? |
#21
Posted 15 September 2009 - 14:19
No, gata ca am reusit... urban, am vreo cateva site-uri facute cu php si care ruleaza din localhost fara probleme, deci si codurile voastre, daca ar fi corecte ar trebui sa mearga. In fine, am reusit pana la urma cam asa:
function test($x) { if($x<=4) { return test(++$x); } else { return $x; } } echo test(0); // afiseaza 5 Va multumesc baieti pentru timpul acordat si pentru idei. Edited by phinkuletz, 15 September 2009 - 14:22. |
#22
Posted 15 September 2009 - 14:31
phinkuletz, on 15th September 2009, 15:19, said: No, gata ca am reusit... urban, am vreo cateva site-uri facute cu php si care ruleaza din localhost fara probleme, deci si codurile voastre, daca ar fi corecte ar trebui sa mearga. In fine, am reusit pana la urma cam asa: function test($x) { if($x<=4) { return test(++$x); } else { return $x; } } echo test(0); // afiseaza 5 Va multumesc baieti pentru timpul acordat si pentru idei. Edited by Mr.Jinx, 15 September 2009 - 14:32. |
#23
Posted 15 September 2009 - 14:31
phinkuletz, on 15th September 2009, 15:19, said: No, gata ca am reusit... urban, am vreo cateva site-uri facute cu php si care ruleaza din localhost fara probleme, deci si codurile voastre, daca ar fi corecte ar trebui sa mearga. In fine, am reusit pana la urma cam asa: function test($x) { if($x<=4) { return test(++$x); } else { return $x; } } echo test(0); // afiseaza 5 Va multumesc baieti pentru timpul acordat si pentru idei. |
#24
Posted 15 September 2009 - 14:39
Intra intr-un ciclu infinit nu pentru ca nu aveai return ci pentru ca ceea ce trimiteai catre functia test era exact aceeasi valoare de fiecare data.
test($x++) sau test($x--) este de fapt: test($x); $x++ sau test($x); $x-- Si cu si fara return tot intr-un ciclu ai fi ramas pentru ca de fapt return-ul tau nu facea decat un fel de: function test($x); if ($x<4) { return test($x); $x++; (sau $x--) } caz in care if-ul era intotdeauna adevarat pentru x < 4 (eg. test(0)); |
#25
Posted 15 September 2009 - 14:44
function test($x) {
if($x >= 1) { return test($x-1); // sau $x--, n-are importanță aici } else return $x; } echo test(4); Asa e, Mr.Jinx, ai fost cel mai aproape de adevar. De fapt, codul tau e bun, dar comentariu facut e gresit. In cazul de fata "x-1"!="x--". Daca nu ma crezi, testeaza urmatorul cod schimband x+1 cu x++ : function test($x) { if($x<=4) return test($x+1); else return $x; } echo test(0); // ar trebui sa afiseze 5 urban, on 15th September 2009, 17:39, said: Intra intr-un ciclu infinit nu pentru ca nu aveai return ci pentru ca ceea ce trimiteai catre functia test era exact aceeasi valoare de fiecare data. test($x++) sau test($x--) este de fapt: test($x); $x++ sau test($x); $x-- Si cu si fara return tot intr-un ciclu ai fi ramas pentru ca de fapt return-ul tau nu facea decat un fel de: function test($x); if ($x<4) { return test($x); $x++; (sau $x--) } caz in care if-ul era intotdeauna adevarat pentru x < 4 (eg. test(0)); |
#26
Posted 15 September 2009 - 15:00
Asta Ii spusesem si eu
OriginalCopy, on 15th September 2009, 14:01, said: preincrementeaza LE: altfel nu intra in recursiune cu noua valoare. Vezi "pass by value" si "pass by reference". Ca si incepator, cand ti se spune ceva si nu intelegi, nu te uita in partea cealalta, ci cere explicatii |
#27
Posted 15 September 2009 - 15:28
OriginalCopy, on 15th September 2009, 18:00, said: Asta Ii spusesem si eudar cred ca trebuie sa repetam de mai multe ori acelasi lucru pana se observa... Ca si incepator, cand ti se spune ceva si nu intelegi, nu te uita in partea cealalta, ci cere explicatii Edited by phinkuletz, 15 September 2009 - 15:28. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users