Tableau dans une fonction

Résolu/Fermé
csi_bern Messages postés 64 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 26 octobre 2020 - 28 juil. 2020 à 12:56
csi_bern Messages postés 64 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 26 octobre 2020 - 28 juil. 2020 à 13:49
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.
A voir également:

3 réponses

jordane45 Messages postés 38464 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 12 avril 2025 4 741
28 juil. 2020 à 13:13
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 ?

0
csi_bern Messages postés 64 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 26 octobre 2020 2
28 juil. 2020 à 13:25
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.
0
csi_bern Messages postés 64 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 26 octobre 2020 2
28 juil. 2020 à 13:49
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
0