Это мой код:
$val1 = 0; $val2 = 3; $cond = '>';
$check = $val1.$cond.$val2;
echo eval('return $check;') ? 'true' : 'false';
У меня есть функция, которая, используя полученные параметры, генерирует динамические операторы if.
Все утверждения генерируются без ошибок.
Приведенный выше код является примером кода, используемого в указанной функции.
Проблема в том, что все операторы возвращают TRUE.
Я уверен, что я использую Eval неправильно, но я не могу понять, как.
Если вы используете одинарные кавычки, текст интерпретируется как есть, что означает, что вы оцениваете return $check
, Вы хотите использовать двойные кавычки, что означает, что вы оцениваете return 0>3
,
Так что используйте echo eval("return $check;") ? 'true' : 'false';
,
Других решений пока нет …