Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3016 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  savoir où est setée une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

savoir où est setée une variable

n°1938377
Profil sup​primé
Posté le 06-11-2009 à 14:48:43  answer
 

Dans mon projet de refactoring, quelque part dans un des scripts, j'ai une variable global dans une fonction.
si je fais un var_dump(); je vois qu'elle est setée à true.
Oui mais il n'y a aucune référence à cette variable ailleurs dans tout le projet.
Est-ce qu'il y a un moyen de seter une variable sans la mentionner explicitement ?  :heink:

mood
Publicité
Posté le 06-11-2009 à 14:48:43  profilanswer
 

n°1938517
flo850
moi je
Posté le 06-11-2009 à 20:09:56  profilanswer
 

oui , si register_globals est a true , ou pire , si le nom de variable est construit dynamiquement  
 
genre ${'toto'.$i}


---------------

n°1938666
Profil sup​primé
Posté le 07-11-2009 à 20:08:59  answer
 

C'était ça  [:prozac]  
 
20 scripts plus loin dans 3 foreach imbriqués, y a un moment y a un  
foreach ($report as $report_id){
...
$$report_id = true;
...
}
qui traine
 
Deux jours à débug
 
Est-ce qu'il existe un debugger qui peut détecter ce genre de truc ?  [:hotshot:3]  

n°1938685
esox_ch
Posté le 07-11-2009 à 22:13:47  profilanswer
 

Moi dans ce genre de cas je passe la variable en constante via un define() au tout début du script et je regarde où ça pête


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1938698
NewsletTux
<Insérez ici votre vie />
Posté le 08-11-2009 à 08:03:49  profilanswer
 

c'est pas idiot, mais ça risque de ne pas marcher ...
 
define('MA_VAR', true); ne définit pas la même chose que $MA_VAR, si ?


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1938700
esox_ch
Posté le 08-11-2009 à 09:07:54  profilanswer
 

Je viens de faire un test et effectivement même si PHP permet plein de hacks, là il y a un soucis.
 

Code :
  1. define('$val',1);
  2. $val=2;
  3. echo $val;
  4. echo constant('$val');


 
Selon la doc "$val" n'est pas un nom de constante valide, cependant il est accepté. Par contre si on essaie de faire $val = 2, PHP crée une variable $val et la met à 2. Donc les 2 dernière lignes retournent 2 choses différentes...
 
Donc en effet, en php ça marche pas (j'ai parlé trop vite désolé :D C'est un truc que j'utilise en Ruby en général)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1938876
Profil sup​primé
Posté le 09-11-2009 à 10:18:42  answer
 

Est-ce que quelqu'un aurait une solution pour ça ?
 
Même du coté de Xdebug ce n'est pas encore implémenté, il faudra attendre la version 2.1 : http://derickrethans.nl/variable_t [...] xdebug.php

n°1939028
Profil sup​primé
Posté le 09-11-2009 à 15:13:00  answer
 

Bon alors,
y a moyen de savoir où sa pète la première fois :

 
Code :
  1. class debug{
  2. public function __destruct(){
  3. echo '<pre>';
  4. print_r(debug_backtrace());
  5. die();
  6. }
  7. }
  8. $a = new debug();
  9. //plus tard dans le script
  10. $a =5;
 

[edit] un peu mieux


Message édité par Profil supprimé le 10-11-2009 à 09:48:08
n°1939040
stealth35
Posté le 09-11-2009 à 15:28:49  profilanswer
 

pas simple en effet,  
avec debug_zval_dump  tu peu savoir combien de fois elles a été mise mais pas de numero de ligne


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  savoir où est setée une variable

 

Sujets relatifs
[reglé] Faire un lien avec variable plus SUBSTRvariable vba vers vbs
MSDOS - redirection du resultat d'une commande find dans une variableVariable VBA dans une macro
Variable VBA VbscripVBA Stdev variable sharpe ratio
Clos - Créer une liste de variable...utiliser une variable d'un combobox Flash
ancre variableBatch avec date variable
Plus de sujets relatifs à : savoir où est setée une variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR