- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema con la funzione non restituisce un array
-
problema con la funzione non restituisce un array
Ragazzi, in questo script:
[php]
function ArrTestUscita($Id = '0',$A="") {
if(!is_array($A)) $A=array();
$Id=$Id-1;
$A[]=$Id;
if($Id>0){
echo "<br>--proseguo-".$Id."-".$A."--<br>";
ArrTestUscita($Id,$A);
}else{
echo "<br>--esco-".$Id."-".$A."--<br>";
return $A;
}
}
$R= ArrTestUscita(5);
echo $R;
foreach($R as $k=>$v){
echo "<br>--dentro foreach--".$k."--".$v."<br>";
}
[/php]ho questo output:--proseguo-4-Array--
--proseguo-3-Array--
--proseguo-2-Array--
--proseguo-1-Array--
--esco-0-Array--
Warning: Invalid argument supplied for foreach() in [nome della pagina] on line [linea dove c'è il foreach]
dove sbaglio??
come mai $R non si comporta come array? Eppure quando fa il return $A è visto come array..
grazie mille
-
Ciao,
stai utilizzando una funzione in modo ricorsivo e l'unica volta in cui questa funzione ritorna l'array è quando, da s'è stessa, viene chiamata per l'ultima volta.
L'array viene ritornato alla precedente chiamata a sè stessa e non a tutte quelle precedenti.
Modifica aggiungendo il return alla chiamata ricorsiva:
[php]
...
return ArrTestUscita($Id,$A);
...
[/php]Alessandro
-
Grazie mille, il tuo post ha risolto il problema.
Un saluto.