[thelist] get name of variable variable in PHP

Juha Suni juha.suni at sparecom.fi
Wed Sep 27 09:53:35 CDT 2006


Sarah Adams wrote:
> I'm working on some code that uses PHP's "variable variables" [0] and
> in the process of debugging, I'd really like to be able to print out
> not just the value but the *name* of a variable variable (e.g. in a
> loop, where it might not be obvious exactly which variable variable
> is the one being debugged). Is there some function that will allow me
> to do this?

Found this handy function for just this purpose in the comments of the 
variables section of the PHP manual (www.php.net/variables):

  function vname(&$var, $scope=false, $prefix='unique', $suffix='value')
  {
   if($scope) $vals = $scope;
   else      $vals = $GLOBALS;
   $old = $var;
   $var = $new = $prefix.rand().$suffix;
   $vname = FALSE;
   foreach($vals as $key => $val) {
     if($val === $new) $vname = $key;
   }
   $var = $old;
   return $vname;
  }

Original author is lucas dot karisny at linuxmail dot org. In the comment he 
also offers a further explanation to its use and why it works as it does. 
For basic use, you just call it with the variable as the parameter, and it 
returns the name. Worked flawless with quick testing.

HTH

-- 
Suni





More information about the thelist mailing list