Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraire le nom d'une variable ?

1 réponse
Avatar
Matthieu Aubry
Bonjour
J'ai un problème qui peut vous sembler inutile (je ne m'étais jamais encore
posé la question) mais actuellement le résoudre m'arrangerait et me ferait
gagner un peu de temps.

En gros j'ai une fonction avec un paramètre qui afficher tout simplement le
contenu de ce paramètre (qui est un tableau), et je souhaiterais afficher
avant cela le nom de la variable (pour savoir ce qu'il affiche en fait). Or
je n'ai pas envie de rajouter un paramètre à toutes mes fonctions qui
portent le nom de ma variable, car mes noms de variables sont très
explicites et je souhaiterais directement les afficher.

Avec vous une solution ? Qu'elle soit simple ou compliquée ?

Si je n'ai pas été clair voilà le code

<?
function printr($tab)
{
print("ICI je voudrais afficher le nom de la variable, en l'occurence ici
'tableau_de_test'");
print("<pre>");
print_r($tab);
print("</pre>");
}
printr($tableau_de_test);
?>

Merci d'avance
Matthieu

PS : rien trouvé sur ce sujet dans les newsgroups, sauf un autre post sans
réponse...

1 réponse

Avatar
Hugues Peeters
En gros j'ai une fonction avec un paramètre qui afficher tout simplement le
contenu de ce paramètre (qui est un tableau), et je souhaiterais afficher
avant cela le nom de la variable (pour savoir ce qu'il affiche en fait). Or
je n'ai pas envie de rajouter un paramètre à toutes mes fonctions qui
portent le nom de ma variable, car mes noms de variables sont très
explicites et je souhaiterais directement les afficher.
[...]

function printr($tab)
{
print("ICI je voudrais afficher le nom de la variable, en l'occurence ici
'tableau_de_test'");
print("<pre>");
print_r($tab);
print("</pre>");
}
printr($tableau_de_test);


On peut contourner le problème en envoyant en paramètre de la fonction
une chaîne de caractères représentant le nom de la variable, plustôt que
la variable elle même.

On utilise ensuite la notation $$ pour appeler la variable.
Mais il est nécessaire de positionner la variable en 'global' au
préalable.

Exemple :

function super_print_r($varName) {
global $$varName;
echo '<b>',$varName,' : </b>';
print_r($$varName);
}


$maVariable = array(1, 2, 3, 4);
super_print_r("maVariable");

Cordialement,

Hugues Peeters
---

http://www.claroline.net