J'ai besoin d'un moyen de voir toutes les variables définies de l'instance PHP actuelle.
Par actuellement défini, je veux dire tous les globals, tous les locaux à cette portée et tous les locaux à d'autres portées.
Y a-t-il quelque chose de intégré?Comment puis-je voir ** toutes ** les variables actuellement définies en PHP?
Répondre
Pour tout dans le périmètre actuel:
print_r(get_defined_vars());
Je ne pense pas qu'il y ait une solution pour vider toutes les variables de tous les champs d'application, parce que vous devez exécuter effectivement les fonctions/méthodes pour obtenir une complète et une carte intacte de toutes les variables disponibles (les variables pourraient être créées, ajoutées et supprimées lors de l'exécution).
Vous devrez peut-être vous intéresser aux outils de test unitaire ou de couverture de code pour voir si vous pouvez utiliser quoi que ce soit de ces zones, mais cela demandera beaucoup de travail.
Qu'est-ce que vous en avez besoin?
var_dump ($ GLOBALS);
Si une variable n'est pas définie au moment où cette instruction s'exécute, il est impossible d'en parler comme ayant une valeur. Les variables dans les "autres" étendues n'existent pas.
{
$a = new myClass();
do stuff
$a->destroy();
}
print "$a has no meaning in this context";
Que voulez-vous dire? existe "ils prennent toujours la mémoire, non? –
Je pense que je vois, pense à l'appel de fonction à l'intérieur d'un appel de fonction à l'intérieur d'un appel de fonction, et je dois le connaître dans la fonction la plus interne. –
Ahhhh ... c'est discuté ici http://stackoverflow.com/questions/3418413/get-variables-in-scope-at-each-php-backtrace-level en vain –
Je fais face à un énorme projet (je veux dire, vraiment, des centaines de milliers de lignes de code). J'ai parfois besoin de voir la "plus grande" image de ce qui se passe. –
@Itay je vois. Avez-vous hérité du projet? Le code est-il documenté? Ce genre d'aperçu est mieux réalisé grâce à la documentation en ligne que phpdoc peut donner un sens. –
@pekka - vous avez raison dans toutes vos hypothèses, sauf celles sur la documentation: -DDD (c'est-à-dire il n'y a pas de documentation, pas de noms de symboles significatifs etc) –