eval()’d код в строке xx

#php

#php

Вопрос:

у меня есть этот код, я хочу преобразовать get (title) в переменную, она работает правильно, например, у меня есть переменная ‘новости, спорт, программа’, моя проблема в том, что когда кто-то меняет title =»новости» на title = new , а у меня нет новой переменнойкак я могу это контролировать, когда пользователь меняет заголовок; при этом появится сообщение об ошибке, что переменная не определена, и eval()’d код в строке xx ошибка

 if(isset($_GET['title']))
    $title=stripslashes($_GET['title']);
else
   $title="news";

$trimed=trim(strtolower($title));
$variable="$".str_replace(" ","_",$trimed);
$title=eval('return '.$variable.';');  

if(!isset($title))
    $title=$title;
 

спасибо за помощь

Ответ №1:

Вы можете использовать ${} синтаксис и заменить:

 $title = eval('return '. $variable.';');  
 

С:

 $title = ${'return '. $variable};  
 

Ответ №2:

Просто сделайте так:

 $nameOfVar = 'return' . $variable;
$title = $nameOfVar;