Newsgroup: it.comp.www.php
Titolo: funzioni ricorsive

Ciao a tutti,
č possibile scrivere in php funzioni ricorsive?
se sě, chi puň mostrarmi un semplice eempio?....
grazie e ciao
Luca

|function num_tette($tette) {
|If $tette=1 $tette=num_tette($tette+1) ;
|return $tette ;
|}
Per curiosità, a che sito stai lavorando?


Certo che si puň, io le uso molto per il mio forum.
function bah ($id)
{
    $id = qualcosa($id);
    if (bah ($id) == "")
    {
        break;
    }
}


Naturalmente stai attento ai loop infiniti...
Ciao

 ha scritto nel messaggio
news:gtgattk8fmpr795k6...@4ax.com...


 ha scritto nel messaggio
news:60cB7.5738$GW5....@news2.tin.it...


 wrote in message
news:9r3kvm$pqc$1...@newsreader.mailgate.org...

Peccato che non va... forse vedeva solo la variabile!
:P

Non stiamo a sottilizzare, qualche () qualche = in piu', qualche
controllo......era solo a titolo di esempio P-))
--------
Paolo Dell'Unto
gab...@tiscalinet.it
ICQ # 770759


 
Nello spazio di pensiero chiamato : it.comp.www.php 
Ha scritto questo messaggio : 

Scusa, forse non ho capito bene, sono un novizio del PHP :
Supponiamo 
function bah($id)
{
	$id = ""; // banale
	if (bah($id) == "")
	{	break; 
	}
}
In questo caso la condizione di terminazione della ricorsione (cioe'
la condizione dell'if) e' la chiamata ricorsiva stessa, cio' non porta
ad una ricorsione senza terminazione? Inoltre la valutazione della
chiamata ricorsiva cosa dovrebbe riportare dato che la funzione non ha
nessun parametro di ritorno? Poi il break, non dovrebbe servire per
uscire dal ciclo piu' interno?
Prova a vedere questo (banalissimo) :
function countDown($count)
{	if (count != 0)
	{	countDown(count-1);
		echo ($count);
	}
	else
	{	echo "The time is over!";
	}
}
...
countDown(10);
stampa :
10
9
8
..
1
The time is over!
Correggetemi se sbaglio.
[}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{]
SunGray aka Gabriele Lana  
www.sungray.com
contact me @ : 
sun...@tiscalinet.it
[}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{}-{]
 
 


Attenzione ke la ricorsivita' e' molto esosa per quanto riguarda le risorse.
Se il problema ha una natura ricorsiva, allora benvenga la ricorsione per
quanto riguarda la leggibilita', facilita' di implementazione etc. , ma non puoi
fare un discorso di prestazioni.
Se si riesce a mettere giu' un algoritmo iterativo per un problema ricorsivo meglio usare
quest'ultimo.
-- 
WEbdOM webmaster di 
www.metronic.it
 
il sito sulla telefonia ai prezzi che cercavi
Iscriviti a Pillol@ - la newsletter sulla telefonia (e non solo).
Metronic.It mobile phone philosophy

 controllo......era solo a titolo di esempio P-))
Ma va?
P() {
    P();
}
:PPPPPPPP



E lo stack esplose con gran fragore
Causando la dipartita
del povero programmatore
:PP
Ciaotutti,
*


Dipende dal timelimit.

 del povero programmatore
Cmq. si sa, era un discorso puramente teorico...
Se vogliamo fare i sofisticati:
In realta' questo affare causa un 'parse error' durante la esecuzione del
script.
:PPPPPPPPPPPPPPPPPPPPPPPPPP

 uscire dal ciclo piu' interno?
Mah, so solo che il mio voleva essere solo un esempio.
Questo pezzo di codice è tratto dal mio script:
function SelNext ($lognick, $refid, $loop = false, $order = "ASC", $indents
= -20)
{
    $indent = "20";
    $result = @mysql_query("SELECT id, title, nick, email, date, flags FROM
forum WHERE refid = $refid ORDER BY id $order");
    $rows = @mysql_num_rows($result);
    if (!empty($rows)) $indents += $indent;
    while (list($id, $title, $nick, $email, $date, $flags) =
@mysql_fetch_array($result))
    {
        //Casini Vari
        if ($loop) SelNext($lognick, $id, true, "ASC", $indents);
    }
    if (!empty($rows)) $indents -= $indent;
}
Spero che possa essere ancora più utile. Ciao