name ()

Нужна функция function name (string param), которая возвращает имя фактической переменной, переданной ей. Или я совсем тупой, или без debug_backtrace () тут не обойтись...

echo name ($some_var);

Должно вывести «some_var».

Подписаться на блог
Отправить
Дальше
Ctrl →Calliope
3 комментария
Astur 2004

А зачем?... Это же получится дублирующий механизм для $$some_var:
echo $some_var;
Ну, то есть, если имя переменной нужно скрипту, то используются т. н. «переменные переменные» и всё :)

Илья Бирман

Блин, люди, ну вы что! Нужно не по имени переменной получить переменную, а по переменной её имя!

Astur 2004

Так я о том и говорю...
Это же просто: хранишь имя переменной в другой переменной, обращаешься к переменной по этому имени через $$, а когда понадобится именно имя — просто обращаешся через $ вместо $$.
У тебя, возможно, задача, в которой этот путь неприемлем... тогда скажи, почему?...
...Просто функции такой стопудово нету. Это ж какой был бы простор для творчества юных хакеров, если бы она была :)

Илья Бирман

Вот я и пытаюсь себя проявить юным хакером...

То, что готовой функции нет, я знаю. Вопрос в другом: как бы её написать без debug_backtrace ()... Твоё решение с долларами, похоже, мне не подходит. Думаю.

normal 2004

2 Astur
%%$var = «Hello»;
$name = «var»;
echo $$name;%%
такое только с долларами можно, но нужно же без второй строчки :)
Я сам над таким мучался (для дебуженья нужно? :) ничего не придумал...
Если придумаешь, напиши обязательно!

Илья Бирман

Видимо, всё-таки debug_backtrace ()...

Мои книги