Tableau dans une fonction [Résolu]

Signaler
Messages postés
62
Date d'inscription
lundi 29 mars 2010
Statut
Membre
Dernière intervention
28 juillet 2020
-
Messages postés
62
Date d'inscription
lundi 29 mars 2010
Statut
Membre
Dernière intervention
28 juillet 2020
-
Bonjour,

Je souhaite utiliser un tableau global dans une fonction.

Voici la fonction:
function isPicket($date, $grup) {
	global $picket;
	echo $picket[1578524400]."s";
}


Et voici un extrait du tableau $picket par un print_r:
Array
(
[1577660400] => 1
[1577746800] => 1
[1577833200] => 1
[1577919600] => 4
[1578006000] => 4
[1578092400] => 4
[1578178800] => 4
[1578265200] => 2
[1578351600] => 2
[1578438000] => 2
[1578524400] => 1
[1578610800] => 1
[1578697200] => 1
[1578783600] => 1
...
[1609282800] => 1
[1609369200] => 4
)


La valeur 1578524400 est bien présente dans les indices du tableau, mais à l'affichage, seul le "s" est visible.

En effectuant cette demande en dehors de la fonction, ça marche.

Pour information, j'ai un deuxième tableau avec des index classiques à insérer dans cette fonction et il ne marche pas non plus. Sinon, j'ai une autre fonction, où là l'import d'un autre tableau fonctionne.

Enfin, en désespoir de cause, j'ai également essayé en insérant des guillemets autour de l'index, mais ça ne change rien.

Par contre, ça marche si je mets le tableau en paramètre de la fonction (mais ça ne doit pas être génial au niveau performance).

Merci d'avance pour vos suggestions.

3 réponses

Messages postés
29605
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2020
2 792
Bonjour,

A la place de ton print_r,
peux tu faire
var_dump($picket);

et
var_dump($picket[1578524400]);

et nous montrer ce que ça te retourne ?

Messages postés
62
Date d'inscription
lundi 29 mars 2010
Statut
Membre
Dernière intervention
28 juillet 2020
2
Salut Jordane,

Voici le premier Dump (exécuté hors de la fonction):
array (size=368)
1577660400 => int 1
1577746800 => int 1
1577833200 => int 1
1577919600 => int 4
1578006000 => int 4
1578092400 => int 4
1578178800 => int 4
1578265200 => int 2
1578351600 => int 2
1578438000 => int 2
1578524400 => int 1
1578610800 => int 1
1578697200 => int 1
1578783600 => int 1
...
1588460400 => int 1
1588546800 => int 3
1588633200 => int 3
more elements...


Et le second (exécuté hors de et dans la fonction):
C:\wamp64\www\test\projet\tableau.php:191:int 1

Et là ne me demande pas pourquoi (à moins que tu ais une idée) mais la fonction marche.
Messages postés
62
Date d'inscription
lundi 29 mars 2010
Statut
Membre
Dernière intervention
28 juillet 2020
2
Bonjour,

Après avoir baladé mon code dans tous les sens, j'ai trouvé ce qui ne jouait pas.

En fait, le tableau était déclaré après l'appel de la fonction (mais avant la fonction) et visiblement php n'aime pas ça.

J'ai donc tout déplacé plus haut et ça marche.

Encore merci à Jordane.

Bonne journée