Variabele-naam in functie krijgen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark L

Mark L

27/09/2009 19:12:00
Quote Anchor link
Ik ben bezig om een verbeterde en vereenvoudigde versie van print_r te maken. Maar nu wil ik de 'echte' naam van de variabele zien te achterhalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
function show_var($variabele) {
// hier dan de functie
}
$var = 'Naam';
show_var($var);
?>


Dat ik kan outputten: $var = 'Naam'. Ik wil dus zien te achterhalen dat de 'originele' naam van 'Naam' $var was. En als je show_var('test'); zou doen, dan krijg je daar dus GEEN naam uit.
Ik krijg de waarde in de functie mee, maar ik vroeg me af of ik ook de naam van de variabele mee kon krijgen.
Natuurlijk zou ik het tussen quotes kunnen verzenden: show_var('$var'); en dan met global de waarde van de variabele achterhalen, maar dat vind ik niet zo'n mooie oplossing. Ik vroeg me af of iemand een beter oplossing wist.

Alvast bedankt,
Miloan
Gewijzigd op 01/01/1970 01:00:00 door Mark L
 
PHP hulp

PHP hulp

05/03/2021 20:00:43
 
Toine vd P

Toine vd P

27/09/2009 19:20:00
Quote Anchor link
Je kunt wat handige informatie halen uit debug_backtrace();
Om de variebelnaam te achterhalen zou je kunnen loopen op de output van get_defined_vars(), echter vermoedt ik dat er een handige oplossing is.
 
Mark L

Mark L

27/09/2009 19:34:00
Quote Anchor link
Bedankt dat je zo snel reageert.

Bij debug_backtrace(); krijg ik de line, daar zou ik opzich iets mee kunnen doen, alleen dan zou ik dus met fopen het bestand nóg een keer openen.. en dat vind ik redelijk veel werk ervoor.
Met get_defined_vars zou ik idd kunnen zoeken naar een variabelenaam die die waarde heeft, alleen dan heb ik een probleem als je twee variabelen hebt die dezelfde waarde hebben.
Ik hoop dat er nog meer opties zijn. Ik ga ondertussen even kijken welke het handigste en meest praktisch zou zijn.
 
Toine vd P

Toine vd P

27/09/2009 19:40:00
Quote Anchor link
debug_backtrace was meer een tip om extra informatie in je debug functie te verschaffen.

Ik heb een functie gevonden die doet wat je wilt, maar het is wel een hoop gedoe voor een variabelnaam;

http://us2.php.net/manual/en/language.variables.php#49997

Laat me even weten hoe het gegaan is.
 
Mark L

Mark L

27/09/2009 20:24:00
Quote Anchor link
Ik ben even aan t stoeien gegaan. Het werkt wel goed, alleen ik kan het niet echt implenteren:
Ik kan geen reference aan een func_get_args() zetten. Maar dit is eigenlijk niet zo'n groot probleem. Zelfs niet als je show_var(&value, $val, &$var); doet. Dan zit bij $value en $var geen reference. Als ik hem ophaal via func_get_args(). Als het niet anders kan, maak ik het zo dat je gewoon maar 1 argument kunt invullen.

In ieder geval bedankt :)
Ik hoop dat ik nog een oplossing kan vinden voor de func_get_args(); En als ik de functie af heb, dan post ik hem op PHPhulp!

Edit:
En een array haalt hij ook niet goed:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$array
= array(1, 2, 3);
vname($array[1]);
?>
Gewijzigd op 01/01/1970 01:00:00 door Mark L
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.