Forum Webscript.Ru

Программирование => PHP => Тема начата: evgkuz от 10 Сентября 2002, 10:47:13

Название: Как добрать до имени переменной?
Отправлено: evgkuz от 10 Сентября 2002, 10:47:13
echo $value = "hello"; // hello

Мне нужно получить имя переменной, т.е. чтобы программа напечатала : // value
Название: Как добрать до имени переменной?
Отправлено: Меняздесьдавнонет от 10 Сентября 2002, 10:51:17
Это никогда не бывает нужно.
Я знаю, как, но ты хочешь этого неправильно.
Название: Как добрать до имени переменной?
Отправлено: ThE0ReTiC от 10 Сентября 2002, 11:05:02
print($$value);
evgkuz

RomikChef  прав. подобных конструкций лучше избегать...
Название: Как добрать до имени переменной?
Отправлено: Меняздесьдавнонет от 10 Сентября 2002, 11:11:18
ThE0ReTiC
Мне кажется, ты не прав. Это не сработает.
я думаю, в цикле глобалс перебирать.
Название: Как добрать до имени переменной?
Отправлено: ThE0ReTiC от 10 Сентября 2002, 11:14:59
RomikChef
Погоди.
Я видимо чего-то не понял.
Ему нужно напечатать имя переменной?
Или я не прав?
Название: Как добрать до имени переменной?
Отправлено: ThE0ReTiC от 10 Сентября 2002, 11:23:39
RomikChef
Да. был не прав.
Погорячился.
evgkuz
Беру свои слова обратно.
Перебирай $GLOBALS
Название: Как добрать до имени переменной?
Отправлено: Макс от 10 Сентября 2002, 11:30:22
ThE0ReTiC
$$value == $hello а в $hello не хранится строка \'value\'

Может что-то вроде этого:
$a=\'bbb\';
echo str_replace(\'$\', \'\', \'$a\'); // с одинарными кавычками
Название: Как добрать до имени переменной?
Отправлено: evgkuz от 10 Сентября 2002, 13:48:21
Не совсем то, что хотелось бы :(

Есть форма с множеством полей. Её заполняют посетители. Им доверять нельзя. Следовательно все поля надо проверить, и убрать "<", ">" и т.д. Всё это делает одна функция. Но опять же надо составить SQL-запрос с этими значениями.
Если это набирать в ручную с ума можно сойти. У меня названия переменных совпадают с названием полей в БД, я это хотел как-то использовать.
Название: Как добрать до имени переменной?
Отправлено: AlieN от 10 Сентября 2002, 16:23:07
собственно поля можешь обозать вот так:




Потом

while(list($key,$value)=each($input))
      {
       $input[$key]=htmlspecialchars($value);
      }
Название: Как добрать до имени переменной?
Отправлено: GotZfild от 10 Сентября 2002, 16:27:20
evgkuz
В этом случае обычно поля в форме делают, напр., , а в скрипте вытаскивают названия полей через array_keys($form)
Название: Как добрать до имени переменной?
Отправлено: Меняздесьдавнонет от 10 Сентября 2002, 19:19:42
evgkuz
Во-первых, твой метод совершенно не подходит для проверки пользовательских данных. Я вообще поражаюсь, как такая дурацкая мысль могла придти тебе в голову.
Как ты можешь обратиться к переменной, если не знаешь НИ ЕЕ ИМЕНИ, НИ ЗНАЧЕНИЯ?!

Во-вторых. Для этих целей служат не имена переменных, а массивы.
в данном случае - массив $_POST
С его помощью ты можешь не только проверить переменные, но и автоматом составить запрос, где ключи массива будут именами полей, а значения - значениями.
Название: Как добрать до имени переменной?
Отправлено: Dm от 10 Сентября 2002, 20:44:28
Цитировать
Мне нужно получить имя переменной,

чтобы получить все определенные переменные, см.:
http://www.php.net/manual/en/function.get-defined-vars.php

а мысль таки действительно не ахти.