Discussion:
Recherche du nom d'une variable
(trop ancien pour répondre)
Dominique Ottello
2011-01-18 22:45:39 UTC
Permalink
Bonjour,

Dans des scripts PHP, il existe *un seul* tableau et, pour trouver quel
est le nom de ce tableau, j'utilise le code suivant

//Extraction of the array name
$tokens = token_get_all(file_get_contents('mon_fichier.php'));
$tableau = '';
foreach ($tokens as $token) {
if (is_array($token) && $token[0] == T_VARIABLE) {
$tableau = substr($token[1], 1);
break;
}
}

La variable $tableau contient le nom du tableau ou est vide si aucun
tableau n'est trouvé.

Est-ce la bonne méthode ?
N'y a-t'il pas plus simple ?

Merci.
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont forcément raison. Coluche
Olivier Miakinen
2011-01-20 12:51:31 UTC
Permalink
Post by Dominique Ottello
Dans des scripts PHP, il existe *un seul* tableau et, pour trouver quel
est le nom de ce tableau, j'utilise le code suivant
[...]
N'y a-t'il pas plus simple ?
Personnellement, j'aurais fait un truc de ce genre (code non testé) :

$tableau = '';
foreach($GLOBALS as $nom => $valeur) {
switch($nom) {
case "GLOBALS":
case ... ajouter ici tous les tableaux créés automatiquement ...
continue;
}
if (is_array($valeur)) {
$tableau = $nom;
break;
}
}

Je ne sais pas en revanche si cette méthode est meilleure ou moins bonne
que la tienne.

Cordialement,
--
Olivier Miakinen
Dominique Ottello
2011-01-20 18:32:58 UTC
Permalink
Post by Dominique Ottello
$tableau = '';
foreach($GLOBALS as $nom => $valeur) {
Nenni !

Car le fichier duquel je veux extraire le nom du tableau n'a encore pas
été inclus - et ne le sera qu'après le traitement - donc, le nom du
tableau ne fait pas encore partie de $GLOBALS.
--
Il vaut mieux ignorer où l'on est, et savoir qu'on l'ignore, que de se
croire avec confiance où l'on n'est pas. Jean Dominique Cassini.
Technologie aéronautique - http://ottello.net - Les anciens de Vilgénis
Olivier Miakinen
2011-01-21 08:20:20 UTC
Permalink
Post by Dominique Ottello
Post by Olivier Miakinen
foreach($GLOBALS as $nom => $valeur) {
Nenni !
Car le fichier duquel je veux extraire le nom du tableau n'a encore pas
été inclus - et ne le sera qu'après le traitement - donc, le nom du
tableau ne fait pas encore partie de $GLOBALS.
C'est parfaitement clair. Cela confirme le fait que je n'ai rien de
mieux à te proposer que ce que tu fais déjà.

Continuer la lecture sur narkive:
Loading...