Le nom d'une variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Le nom d'une variable

Re: Le nom d'une variable

par trainkill » 14 févr. 2011, 17:47

Sinon, si c'est vraiment pour des raisons de log à des fins de debuggage, il existe FirePHP couplé à firebug et sa méthode FB::log($objet_tout_type);

voir sur http://www.firephp.org/

Méthode qui t'affiche sur la console de firebug le descriptif complet de ton objet, jusqu'au niveau le plus fin

Re: Le nom d'une variable

par macgawel » 10 févr. 2011, 15:21

En fait, ce n'est pas très clair...

- Tu veux une fonction capable d'afficher la nom et la valeur d'une variable sans connaître cette variable ?
=> Je ne vois pas trop comment faire.

- Tu veux une fonction capable d'afficher la nom et la valeur d'une variable donnée ?
=> La réponse est déjà donnée.

- Tu veux pouvoir récupérer le contenu de toutes les variables utilisées dans une page ?
=> La fonction get_defined_vars() est là pour ça...
Elle te permet de récupérer un tableau (nom => valeur)

Re: Le nom d'une variable

par philodido » 07 févr. 2011, 19:04

Il te suffis d'utiliser une variable dynamique c'est fait pour ce genre de cas. Ça te permettra référencer une variable qui change de nom en utilisant un nom qui ne change pas. : http://www.lephpfacile.com/cours/26-les ... dynamiques

Re: Le nom d'une variable

par AB » 05 janv. 2010, 20:36

Bah suivant le même principe j'obtiens bien ce que tu veux afficher en faisant :
function affiche_var($nom)
{
global $$nom;
echo '$'.$nom.' = ';var_dump($$nom); echo'<br />';
}

$user = new stdClass();
$user->firstname = 'yvan';
$user->gender = 'male';
$user->address = array('postcode' => 75000, 'country' => 'france');
$user->admin = false;

$logged = false;

$total = 45;

affiche_var('user');
affiche_var('logged');
affiche_var('total');
affiche_var('azerty');
Affiche bien chez moi :
$user = object(stdClass)#1 (4) { ["firstname"]=> string(4) "yvan" ["gender"]=> string(4) "male" ["address"]=> array(2) { ["postcode"]=> int(75000) ["country"]=> string(6) "france" } ["admin"]=> bool(false) }
$logged = bool(false)
$total = int(45)
$azerty = NULL

Re: Le nom d'une variable

par stealth35 » 05 janv. 2010, 15:38

t'as fais ma methode ?

Re: Le nom d'une variable

par Myk » 05 janv. 2010, 15:32

Non, toute la difficulté est justement à ce niveau : comment récupérer le nom d'une variable sachant qu'il est aléatoire.

Toujours dans le le but d'avoir un dump d'une variable (vérifier sa valeur et avoir son nom), si ma fonction de départ est la suivante :
function dump($var) {
   echo '%X = %Y'; // avec %X le nom de la variable et %Y sa valeur (%X étant le mécanisme que je n'arrive pas à trouver)
}
Alors :
$user = new stdClass();
$user->firstname = 'yvan';
$user->gender = 'male';
$user->address = array('postcode' => 75000, 'country' => 'france');
$user->admin = false;

dump($user) // doit afficher $user = object(stdClass)#1 {...}

$logged = false;
dump($logged) // doit afficher $logged = false

$total = 45;
dump($total) // doit afficher $total = 45
J'ai également testé ta solution (afficher_var), sans succès. :(

Re: Le nom d'une variable

par AB » 02 janv. 2010, 12:02

Oui mais bon dans ton exemple de débug tu demandes d'afficher le nom d'une variable que tu connais déjà. Donc comme disais Zeus l'intérêt n'est pas évident à part peut-être le fait de t'éviter de faire une concaténation et d'écrire
<?php
$firstname = 'john';
echo '$firstname = '.$firstname;
?> 
Remarque que si c'est uniquement pour t'éviter d'écrire une concaténation tu peux toujours créer une petite fonction de ce type pour simuler ta fonction dump
<?php
function affiche_var($nom)
{
global $$nom;
echo '$'.$nom.' = '.$$nom.'<br />';
}

$firstname = 'john';

affiche_var('firstname');// Affiche $firstname = john
?>

Re: Le nom d'une variable

par Myk » 02 janv. 2010, 04:35

Merci pour ces quelques pistes.

Par exemple, pour débugger un(e) application/script.
$firstname = 'john';
dump($firstname) // echo '$firstname = john'

Re: Le nom d'une variable

par zeus » 30 déc. 2009, 17:27

Quel est l'intérêt :?: :-k

(la question peut paraitre abrupte, mais je pense qu'une fois que nous aurons cette réponse, nous aurons peut être d'autres solutions à t'apporter ;) )

Re: Le nom d'une variable

par stealth35 » 29 déc. 2009, 04:58

ta plusieurs exemple sur le net, par ex : http://us2.php.net/manual/en/language.v ... .php#76245
il me semblait que xdebug le faisais mais je retrouve pas (possible que je reve).

Re: Le nom d'une variable

par Myk » 29 déc. 2009, 02:19

Il s'agit d'un "simple" cas général.

Par exemple, comment réaliser ceci :
$firstname = 'yvan';
echo getVarName($firstname); // firstname est affiché

Re: Le nom d'une variable

par jojolapine » 28 déc. 2009, 21:53

Bonsoir,
Dans quel contexte? Pour quelle utilisation?
Un peu plus de détails seraient bienvenus ;)

Le nom d'une variable

par Myk » 28 déc. 2009, 20:01

Bonjour,

Peut-on récupérer le nom d'une variable en PHP ? D'aprés Rasmus, non... Mais sait-on jamais.

Yvan