За последние 24 часа нас посетили 48458 программистов и 1729 роботов. Сейчас ищут 684 программиста ...

Вопрос по eval

Тема в разделе "PHP для новичков", создана пользователем ALEXU, 19 мар 2012.

  1. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Доброго времени суток.

    Не могу понять как изменить.

    Код (Text):
    1. $_func = '$this->'.$option_values['use_function'];
    2.  
    3. eval($_func.'\''.$option_values['value'].'\''.', \''.$option_name."');");
    $option_values['use_function'] - тянет из БД, например radio(array('true', 'false'),
    $option_values['value'] - это аргумент функции
    $option_name - это аргумент функции

    radio - это функция в этом же классе, в нее и падаю вышеуказанные аргументы. Первым идет массив array('true', 'false'), а потом уже $value, $name
    Вот она(есть и другие, для select, input и т.д...)
    Код (Text):
    1.     function radio($_array, $value, $name)
    2.     {
    3.         if (!empty($_array) && is_array($_array))
    4.         {
    5.             foreach ($_array as $_val)
    6.             {
    7.                 if ($_val == $value)
    8.                     $radio = '<input type="radio" name="'.$name.'" checked value="'.$_val.'"> <b>'.$__val.'</b>';
    9.                 else
    10.                     $radio = '<input type="radio" name="'.$name.'" value="'.$_val.'"> <b>'.$__val.'</b>';  
    11.             }
    12.         }
    13.         return $radio;
    14.     }
    Мне нужно передать в массив то, что вернула функция которая получается из eval(), а полученный массив я уже передаю в шаблон через smarty...

    не получается вернуть результат radio() в массив.

    Что тут можно сделать? Если не очень подробно описал - уж простите. Выдернул из кода самое основное.

    Добавлено спустя 54 минуты 46 секунд:
    Все. Понял как получить результат eval.

    Код (Text):
    1. $_func = '$result = $this->'.$option_values['use_function'];
    2. eval($_func.'\''.$option_values['value'].'\''.', \''.$option_name."');");
    3. echo $result;