dump může zobrazit název proměné
- MzK
- Člen | 127
Jestli by nějak šlo vypsat název dumpované proměnné, protože když je jich víc, tak se v tom člověk ztrácí. $$var;
<?php
$var = 'test';
$pole = array('aa' => 'prvni', 'bb' => 'druhy');
dump($var);
dump($pole);
?>
by vypsal cca:
<?php
„var“: "test" (4)
„pole“: array(2) [
'aa' => "prvni" (5)
'bb' => "druhe" (5)
]
?>
- Mikulas Dite
- Člen | 756
Bohužel, ale tohle nejde. (Bez složitého parsování souboru ručně, protože ani reflexe na to nestačí.)
- bojovyletoun
- Člen | 667
asi tak, protože se vždy předává „hodnota proměnné“ (kromě
&$, ale to věc neřeší).
Jedině vyzkoušet toto: (samozřejmě se to omezuje na „opravdické
proměnné začinající $“, jak tímto způsobemp vydumpovat round(3.13) nebo
Framework::REVISION je oříšek)
function dump2($var){
deBUg::duMP($$var,$var);
}
dump2('pole');
zbytek by šel teoreticky, že by se do funkce zamontoval eval, ale následky si radši nebudu domýšlet,..
Editoval bojovyletoun (9. 2. 2011 22:47)
- MzK
- Člen | 127
Aha, a já myslel že stačí jen $$var; http://mach13.com/…tring-in-php
<?php
function getvarname(&$var)
{
$ret = '';
$tmp = $var;
$var = md5(uniqid(rand(), TRUE));
$key = array_keys($GLOBALS);
foreach ( $key as $k )
if ( $GLOBALS[$k] === $var )
{
$ret = $k;
break;
}
$var = $tmp;
return $ret;
}
$another = 'test';
$testvar = 'test';
echo getvarname($testvar); //echoes 'testvar'
?>
- Mikulas Dite
- Člen | 756
Pokuď to opravdu v globals bude, tak to funguje. V drtivé většině dumpů to tam nebude.
- redhead
- Člen | 1313
Jako další možnost může být debug_backtrace()
– zjistit
soubor a řádek, kde se volala ta dump funkce a vyparsovat regulárem onen
název proměnné z řádky souboru. Bude to možná o něco pomalejší, ale
za to to bude fungovat 100% ve všech případech.
Ale asi bych to neviděl jako novou feature. Nevím jak ty, ale já většinou dump() používám zřídka. Jen pokud se vyskytne nějaká chyba, když ji opravím, tak dump() mažu. Na jedné stránce nemám víc jak 2–3 dumpy najednou a v nich se vyznám jednoduše.
- bojovyletoun
- Člen | 667
A stejně mi přijde přehlednější si do druhého parametru dump název napsat vlastnoručně