Variabele-naam in functie krijgen
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:
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
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
function show_var($variabele) {
// hier dan de functie
}
$var = 'Naam';
show_var($var);
?>
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
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.
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.
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.
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.
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.
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.
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:
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:
Gewijzigd op 01/01/1970 01:00:00 door Mark L




