${$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 

2 réponses

Répondre au sujet
jordane45 19233 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 12 déc. 2015 à 03:09
0
Utile
1
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.