Rom1sab
Messages postés46Date d'inscriptionsamedi 12 janvier 2008StatutMembreDernière intervention12 décembre 2015
-
Modifié par jordane45 le 12/12/2015 à 03:05
Rom1sab
Messages postés46Date d'inscriptionsamedi 12 janvier 2008StatutMembreDernière intervention12 décembre 2015
-
12 déc. 2015 à 03:28
Bonjour,
j'ai créé cette fonction et ça ne ..."fonctionne" pas.
<?php
//$j1x and $J2x are set before this function and contain integers
function cssj($jmax)
{
$j=1;
while($j<=$jmax)
{
$nomvar='J'.$j.'x';
if (isset(${$nomvar})){echo '<div id="j'.$j.'"><img src="img/blit/jaune.png"></div>';} //don't work
$j++;
echo $j;//work
echo ${$nomvar};//don't work
}
}
cssj(40);
?>
La fonction est bien appelée et exécuté, mais l'étape du ${$nomvar} ne semble pas fonctionner, alors qu’elle fonctionne bien dans mes autres codes (sans fonctions).
Merci d'avance.
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique). Explications disponibles ici : ICI
jordane45
Messages postés37521Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 3 juin 2023341 12 déc. 2015 à 03:09
Bonsoir,
//$j1x and $J2x are set before this function and contain integers
alors qu’elle fonctionne bien dans mes autres codes (sans fonctions).
Tout est dit !
===>>> sans fonctions
Penches toi sur ce qu'on appelle la portée des variables !
Une variable définie en dehors d'une fonction... n'y est pas disponible
( de même qu'une variable définie DANS une fonction.. n'est pas disponible en dehors ! )
Rom1sab
Messages postés46Date d'inscriptionsamedi 12 janvier 2008StatutMembreDernière intervention12 décembre 20153 12 déc. 2015 à 03:28
Merci, le code fonctionne comme ceci:
$nomvar='J'.$j.'x';
global ${$nomvar};
$varJ=${$nomvar};
if (isset($varJ)){echo '<div id="j'.$j.'"><img src="img/blit/jaune.png">
12 déc. 2015 à 03:28
</div>';}