Newsgroup: it.comp.www.php
Titolo: Funzione a più return

Ciao a tutti.
Io ho fatto questa funzione:
function caratteristiche($bonus, $caratteristica, $ferite, $malattie, 
$potenza, $velocita, $vigore, $sazieta, $difesa, $agilita, $sanita){
	switch($caratteristica){
	case 	$caratteristica == 	"ferite":
			$modifica		= 	$bonus+$ferite;
			$mod_car		=	"ferite";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica	==	"malattie":
			$modifica		=	$bonus+$malattie;
			$mod_car		=	"malattie";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica	==	"potenza":
			$modifica		=	$bonus+$potenza;
			$mod_car		=	"potenza";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica	==	"velocita":
			$modifica		=	$bonus+$velocita;
			$mod_car		=	"velocita";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica	==	"vigore":
			$modifica		=	$bonus+$vigore;
			$mod_car		=	"vigore";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica	==	"sazieta":
			$modifica		=	$bonus+$sazieta;
			$mod_car		=	"sazieta";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica ==	"difesa":
			$modifica		=	$bonus+$difesa;
			$mod_car		=	"difesa";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica ==	"agilita":
			$modifica		=	$bonus+$agilita;
			$mod_car		=	"agilita";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	case	$caratteristica	==	"sanita":
			$modifica		=	$bonus+$sanita;
			$mod_car		=	"sanita";
			$testo_modifica	=	"Quest'oggetto ti assegna $bonus punti a: $mod_car 
($modifica)";
			$sql_scrivi		=	mysql_query("UPDATE utenti2 SET 
$caratteristica=$modifica WHERE nick='$cliente'");
	break;
 
	}
print $testo_modifica;
return $sql_scrivi;
return $testo_modifica;
return $mod_car;
return $modifica;
}
$modifiche=caratteristiche(	$bonus,
							$caratteristica,
							$ferite,
							$malattie,
							$potenza,
							$velocita,
							$vigore,
							$sazieta,
							$difesa,
							$agilita,
							$sanita,
							$mod_car,
							$modifica);
Purtroppo però ho letto solo dopo che dopo il 1° return la funzione si 
ferma e restituisce il valore di Return. (in questo caso $sql_scrivi).
Il mio problema ora è rendere disponibile per altre funzioni o variabili 
ecc.. gli altri risultati della funzione:
$testo_modifica, $mod_car e $modifica.
Ho spulciato tra manuale e libri, ma non ho capito. Qualcuno può 
aiutarmi per favore? mi sono bloccato qui e non riesco ad andare avanti...
Lo scopo della funzione è estrarre queste 4 variabile per poi inserirle 
nel db in due tabelle diverse a seconda del tipo. Spero di non essermi 
mal-espresso, rimango a leggere per ulteriori spiegazioni...
Grazie a tutti.
Kevin.

 funzioni o variabili ecc.. gli altri risultati della funzione:
Passoggio per riferimento:
function test (&$var1, &$var2, &$var3) {
	$var1 = "pippo";
	$var2 = "pluto";
	$var3 = "topolino";
}
test ($a, $b, $c);
print ("$a $b $c");
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 
Cavoli! bastava aggiungere una &. Ma cosa indica questo carattere?
Se ho capito bene, aggiungendo la & rendo disponibile quelle variabili 
anche all'esterno della funzione. E' così? E' come trasformare le 
variabili in $global?
  Grazie ancora Setec sei di grande aiuto!
Kevin.

 trasformare le variabili in $global?
Guarda che non e' $global ma global.
http://www.php.net/manual/en/functions.arguments.php#functions.arguments
.by-reference
