Page 1 sur 1

fonction qui renvoie un tableau d'entiers

Posté : 08 nov. 2005, 18:25
par spray6969
Bonjour,

Je souhaiterai que ma fonction ci dessous me renvoie le tableau qu'elle crée afin que je puisse accéder à une ou plusieurs valeurs de ce tableau dans mon "Main"

Mais là je coince

Merci
function ecritab ($tab)
{
    for($i = 0; $i <= 366; $i++)
    {
        $tab[$i]=3;
    }
    return $tab;
}
-----MAIN------------
ecritab($eee);
echo $eee[2];

Posté : 08 nov. 2005, 22:27
par Cyrano
Tu appelles la fonction mais sans stocker le résultat: fait donc:
$resultat = excritab($eee);
print_r($resultat);
echo($resultat[2]);

Posté : 09 nov. 2005, 00:12
par Jawad
Un truc marrant à essayer aussi (pour le fun, soyons fous!), qui devrait faire à peu près ce que tu veux:
function ecritab (&$tab)
{
    for($i = 0; $i <= 366; $i++)
    {
        $tab[$i] = 3;
    }
}
Et dans ta page principale:
ecritab($eee);

echo $eee[2];

Posté : 09 nov. 2005, 08:14
par Cyrano
Un truc marrant à essayer aussi (pour le fun, soyons fous!), qui devrait faire à peu près ce que tu veux:
function ecritab (&$tab)
{
    for($i = 0; $i <= 366; $i++)
    {
        $tab[$i] = 3;
    }
}
Et dans ta page principale:
ecritab($eee);

echo $eee[2];
:shock: Un détail m'échappe, c'est exactement ce qu'il a fait selon son message et il a indiqué que ça ne fonctionnait pas, ce qui est logique également.

Aurais-je loupé une marche... :-k

Posté : 09 nov. 2005, 11:32
par rami
Pas une marche, juste un '&' :P

Il passe le tableau en référence dans la fonction. Ce qui fait que la fonction travaille bien sur la variable du tableau, et non pas un copie.

Si tu utilises cette fonction pour remplir un tableau avec la même valeur, il existe la fonction array_fill() qui fait exactement ca, et en plus rapide puisque c'est compilé ;)

Posté : 14 nov. 2005, 13:21
par spray6969
Merci beaucoup le passage par reference marche très bien.

Par contre se pose un autre problème, Autant lepassage par ref fonctionne très bien lorsque ma fonction est dans mon main, autant celà ne marche pas du tout lorsque ma fonction est dans un autre fichier "fonctions.php" et est appelé dans le main par un include.

Une idée ??