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

Recherche du nom d'une variable

3 réponses
Avatar
Dominique Ottello
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

3 réponses

Avatar
Olivier Miakinen
Le 18/01/2011 23:45, Dominique Ottello a écrit :

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
Avatar
Dominique Ottello
Olivier Miakinen <om+ écrivait :

Personnellement, j'aurais fait un truc de ce genre (code non testé) :

$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
Avatar
Olivier Miakinen
Le 20/01/2011 19:32, Dominique Ottello a écrit :

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à.