@jekahm

Как выполнить функцию из строки в PHP?

Доброго времени суток! Подскажите, каким образом можно выполнить функцию из строки в PHP?
Например, имеется переменная, которая содержит вызов функции в виде строки:
$var = "do_some_func()";

Реализовал в админке сайта привязку к каждой странице сайта набора блоков: один блок содержит html код, второй - какой-то определённый модуль (в виде вызова функции). Вот и столкнулся с проблемой, что необходимо вывести эти блоки на страницу: html блоки выводятся нормально, а вот уже блоки с модулями выводятся только в виде строки - например, do_some_func(). А мне необходимо именно их выполнение.
Заранее благодарен всем за ответы!
  • Вопрос задан
  • 4398 просмотров
Пригласить эксперта
Ответы на вопрос 8
function test()
{
   echo "test function";
}

$var = "test";
$var();
Ответ написан
Комментировать
CrazySquirrel
@CrazySquirrel
php.net/manual/en/function.eval.php

Но имхо это очень дурной тон.
Ответ написан
Комментировать
@xmeoff
if (function_exists($var)) call_user_func($var);

но перед этим нужно почистить $var, оставив только название функции; либо не использ-ть вообще скобки в строке.
Ответ написан
Комментировать
Stillborn
@Stillborn
web-developer, web-designer
Вы зря пришли к такой реализации, пересмотрите все в корне. Это как минимум неудобно.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
eval($code);
Ответ написан
Комментировать
@artishok
кратко
А не проще ли вызывать функцию так:some html '.do_some_func().' another html...
Ответ написан
Комментировать
А include не реально использовать? Никак не могу понять вашу извращённую логику.
Ответ написан
Комментировать
Mike77
@Mike77
lamp sf2 yii разработчик
Попробуй smarty или twig
зачем изобретать велосипед
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы