LINUX.ORG.RU

php eval


0

1

Вот почему у меня конструкция

return lj_link($username);
Работает а
$type = "lj";
return eval($type"_link(".$username.");");
Не работает?

★★★

Последнее исправление: chapay (всего исправлений: 1)

Потому что ты пропустил оператор конкатенации строк после $type.
А ещё, если у тебя включён magic_quotes, то ты можешь идентификаторы переменных прямо внутрь строки пихать.

Terrens
()
Ответ на: комментарий от chapay

Он хотел сказать, что надо попробовать так:

return eval($type."_link(".$username.");");

Или еще лучше:

return eval("{$type}_link('{$username}');");
resurtm ★★★
()
$type = "lj";
return eval("return {$type}_link(\"$username\");");
thesame ★★★★
()
Ответ на: комментарий от Terrens

>А ещё, если у тебя включён magic_quotes, то ты можешь идентификаторы переменных прямо внутрь строки пихать.

С каких пор парсинг переменных внутри строки связан с gpc? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от resurtm

Есть мнение, что подобные конструкции все равно разворачиваются в eval

boombick ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.