Newsgroup: it.comp.www.php
Titolo: Ottenere il nome di una variabile

Ciao a tutti,
ho un piccolo problema:
vorrei ottenere il nome di una variabile da una variabile (e ma vah?)
qualcosa del tipo
$var=2;
echo stampa_nome($var);
stampa: 'var' 
è possibile in php ottenerlo?
grazie

vorrei ottenere il nome di una variabile da una variabile (e ma vah?)
Temo che sia impossibile, dovresti accedere alla tabella dei simboli 
dell'interprete.
Ma a che ti serve, scusa la curiosità? =)
-- 
ff
www.fabiofidanza.com

Fabio Fidanza ha scritto:

Volevo farmi una semplice funzione che stampasse informazioni
sulle variabili comprese il nome.
In effetti pensavo non fosse possibile.

è possibile in php ottenerlo?
Non mi pare abbia molto senso. Se nel codice scrivi
	print stampa_nome($var);
in quel punto devi sapere che la variabile e' "var", e quindi tanto
vale tu scriva
	print 'var';
in primo luogo.
Forse e' meglio se ci dici a cosa ti serve questa funzione: magari,
si puo' ottenere lo stesso scopo in altro modo, tipo print_r.
Leonardo
-- 
Dawn is near, the time is short (Human aircraft! Hard to port!)
We eight reindeers of the night work as one in silent flight.
Let not one damn house pass by (Who taught that guy how to fly?)
Each year sees more girls and boys: how many of them can we bring toys?

In effetti pensavo non fosse possibile.
Se hai bisogno di conoscere tutte le variabili definite il problema
è un altro e puoi risolverlo con:
get_defined_vars()
Cercavi una cosa del genere?
ff
www.fabiofidanza.com
 

vorrei ottenere il nome di una variabile da una variabile (e ma vah?)
E' possibile se ti va di passare una stringa invece che una variabile:
************************************
$variabile= "test";
function infovar($var) {
     eval("global $var;");
     eval("\$realvar=$var;");
     $arr=Array();
     $arr['nome']= str_replace("\$","",$var);
     $arr['valore']=$realvar;
     return $arr;
}
print_r(infovar('$variabile'));
**************************************
Alla funzione infovar passi la stringa '$variabile' e non il contenuto di 
esso. Così invece di risalire dalla variabile al nome (cosa che non penso si 
possa fare per funzioni) risali dal nome alla variabile. Dentro la funzione 
la variabile vera è propria è data da $realvar su cui poi puoi fare tutte le 
operazioni che vuoi.
ciao,
Luca(riello)

 vorrei ottenere il nome di una variabile da una variabile (e ma vah?)
puoi fare questa cosa (per me orribile):
//def nome
$var='nome_var';
//def valore
$$var='valore_var';
echo $var.'<br>'.$$var.<br>;
//skifo degli skifi ora esiste anche questa $nome_var!! :-D
echo $nome_var;
//veramente una roba immonda!!$$var==$nome_var lol quello 
//che l'ha fatto che si e' fumato robba buona!
ps
Da problemi agli offuscatori.


Intanto grazie per le risposte!
Si, il problema era questo ma avrei voluto creare una funzione che
accettasse non solo un array ma anche una o più varaibili e ne
stampasse il nome oltre che il valore.
Con get_defined_vars() posso risalire ai nomi delle varibili (che
corrispondono alle chiavi) , ma non posso fare altrettanto passando una
varibile sola, almeno credo!
Simone

 varibile sola, almeno credo!
Guarda un po' se ti soddisfa, perché non ho capito esattamente cosa ti serve.
$arSoloAmbiente=get_defined_vars(); // ad inizio pagina
$pippo="valore pippo";
$Pluto="valore Pluto";
$arTutte=get_defined_vars(); // dopo la dichiarazione delle *tue* variabili
foreach ($arTutte as $k => $v) {
   if (!in_array($v,$arSoloAmbiente) and $k!="arSoloAmbiente") {
echo "Ho dichiarato la variabile \"{$k}\" il cui valore e' \"{$v}\" <br />\n";
   }
 
}
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

    }
Grazie, ma non volevo usare stratagemmi, ma qualcosa d' immediato:
$mail = '
pi...@pippo.it
'
stampa_var($mail);
function stampa_var($var){
    echo get_var_name($var);   # magari esistesse in php :)
    echo " : ". $var;
}
-> $mail  : 
pi...@pippo.it
Simone

Grazie, ma non volevo usare stratagemmi, ma qualcosa d' immediato:
Ma la mia soluzione non ti piace?
invece di scrivere stamp_var($var) scrivi stamp_var('$var');
Ottieni il tuo risultato con la funzione che ho sopra descritto.
ciao,
Luca(riello) 

Luca(riello) ha scritto:

Grazie  Luca(riello),
si la tua soluzione va benissimo e infatti l' adotterò, anche se
passare la variabile tra virgolette
è uno stratagemma, ma non starò a fare il pignolo! :))))
Grazie a tutti.
ciao
Simone