Отказ от ответственности: это будет работать только в том случае, если вы передаете в функцию переменную, а не значение, и работает только тогда, когда вы не в функции или классе. Так что работает только ГЛОБАЛЬНАЯ сфера:)
Good funct($var)
Bad funct(1)
Вы можете сделать это на самом деле вопреки распространенному мнению ^ _ ^. но он включает в себя несколько приемов поиска с переменной $ GLOBALS.
вы делаете это так:
$variable_name = "some value, better if its unique";
function funct($var) {
foreach ($GLOBALS as $name => $value) {
if ($value == $var) {
echo $name; // will echo variable_name
break;
}
}
}
этот метод не является надежным. Потому что, если две переменные имеют одинаковое значение, функция получит имя первой найденной переменной. Не тот, который вы хотите: P
Лучше всего сделать значение переменной уникальным, если вы хотите точность имен переменных
Другим методом будет использование ссылки, чтобы быть точным, как это
$variable_name = 123;
function funct(&$var) {
$old = $var;
$var = $checksum = md5(time()); // give it unique value
foreach ($GLOBALS as $name => $value) {
if ($value == $var) {
echo $name; // will echo variable_name
$var = $old; // reassign old value
break;
}
}
}
так что вполне возможно:)