Задать вопрос

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

Всем привет, у меня есть массив, в массиве мне приходит функция.
640085d80a312396900477.png
[UNPACK] => function($arOrder){return (((CSaleBasketFilter::AmountFilter($arOrder, "") >= 4650))); };
- данный элемент массива является типом string

Как можно вызвать данную функцию?

Пробовал делать так
$funcUnpack = $arDiscount['UNPACK'];
$callFuncUnpack = call_user_func($funcUnpack, $arOrder);
var_dump($callFuncUnpack);

Но ничего не происходить.

Но если скопировать данную функцию и запустить ее отдельно
$callFunc = function($arOrder){return (((CSaleBasketFilter::AmountFilter($arOrder, "") >= 4650))); };
print_r($callFunc($arOrder));

то я получаю результат
  • Вопрос задан
  • 340 просмотров
Подписаться 1 Средний 9 комментариев
Ответ пользователя AUser0 К ответам на вопрос (2)
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Не стоит делать вот так:
eval("\$calc_func = function(\$a){return (CSaleBasketFilter::AmountFilter(\$a, \"\") >= 4650); };");
print_r($calc_func($arOrder));
Ответ написан
Комментировать