Как узнать/получить имя переменной

Определить имя переменной

Попадаются нетривиальные задачи, например  необходима функция которая в зависимости от полученной переменной в качестве аргумента , должна выполнить  определенные действия. Т.е. необходимо определить не значение а  имя переменной средствами php.
Решение есть.

Понадобиться функция

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;
}

Как использовать?

1.  Используем для определения имени переменной в  глобальной зоне видимости:
<?php
$my_global_variable = «My global string.»;
echo vname($my_global_variable);
// вернет:  my_global_variable
?>
2.  Определяем имя перeменной локальной:
<?php
function my_local_func()
{
$my_local_variable = «My local string.»;
return vname($my_local_variable, get_defined_vars());
}
echo my_local_func();
// вернет: my_local_variable
?>
3.  Определяем имя свойства объекта:
<?php
class myclass
{
public function __constructor()
{
$this->my_object_property = «My object property  string.»;
}
}
$obj = new myclass;
echo vname($obj->my_object_property, $obj);
// вернет: my_object_property
?>

Тэги: ,

  • 1 комментарий на “Как узнать/получить имя переменной”

    1. Спасибо огромное, как раз то что искал! Очень полезный сайт у вас.

    Оставить комментарий