${$var} capricieux [Résolu]

Rom1sab 46 Messages postés samedi 12 janvier 2008Date d'inscription 12 décembre 2015 Dernière intervention - 12 déc. 2015 à 02:19 - Dernière réponse : Rom1sab 46 Messages postés samedi 12 janvier 2008Date d'inscription 12 décembre 2015 Dernière intervention
- 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

Merci d'y penser dans tes prochains messages.
Afficher la suite 

Votre réponse

2 réponses

jordane45 22116 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 août 2018 Dernière intervention - 12 déc. 2015 à 03:09
0
Merci
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 46 Messages postés samedi 12 janvier 2008Date d'inscription 12 décembre 2015 Dernière intervention - 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">
</div>';}
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.