2010-05-12 3 views

Répondre

8

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?

+0

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

+0

@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. –

+0

@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) –

2

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"; 
+0

Que voulez-vous dire? existe "ils prennent toujours la mémoire, non? –

+0

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

+0

Ahhhh ... c'est discuté ici http://stackoverflow.com/questions/3418413/get-variables-in-scope-at-each-php-backtrace-level en vain –

Questions connexes