Pb fonction et return

Résolu/Fermé
thomas3347 Messages postés 18 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 6 novembre 2010 - 19 juil. 2009 à 12:54
thomas3347 Messages postés 18 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 6 novembre 2010 - 19 juil. 2009 à 16:44
Bonjour,

Je n'arrive pas à modifier la valeur d'un tableau dans une fonction :

// Initialisation
$joueur1 = array (
				  'F' => 8,
				  'E' => 9,
				  'A' => 10,
				  'M' => 11,
				  'D' => 5,
				  'perf' => 0,
				  'vie' => 5000);

$joueur2 = array (
				  'F' => 10,
				  'E' => 11,
				  'A' => 12,
				  'M' => 13,
				  'D' => 14,
				  'perf' => 0,
				  'vie' => 5000);

// Fonctions
function calcul_perf($fir, $adv) {
	$fir['perf'] = '8';
	return ($fir);
}

calcul_perf($joueur1, $joueur2);
print_r($joueur1);


J'obtiens ça :
Array ( [F] => 8 [E] => 9 [A] => 10 [M] => 11 [D] => 5 [perf] => 0 [vie] => 5000 )

Au lieu de ça :
Array ( [F] => 8 [E] => 9 [A] => 10 [M] => 11 [D] => 5 [perf] => 8 [vie] => 5000 )

Merci de votre aide.

2 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
19 juil. 2009 à 13:51
salut,

il faut soit passer ton tableau par référence (le "&"), soit assigné la nouvelle valeur à ta variable.
function calcul_perf(&$fir, $adv) {
	$fir['perf'] = '8';
	return ($fir);
}
calcul_perf($joueur1, $joueur2);
print_r($joueur1);

OU :
function calcul_perf($fir, $adv) {
	$fir['perf'] = '8';
	return ($fir);
}
$joueur1 = calcul_perf($joueur1, $joueur2);
print_r($joueur1);
1
thomas3347 Messages postés 18 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 6 novembre 2010 2
19 juil. 2009 à 16:44
Merci beaucoup pour ton aide.
Ca y est le problème est résolu grâce à toi.
0