динамически генерируется, если оператор Eval - PullRequest
0 голосов
/ 19 ноября 2018

Это мой код:

$val1 = 0; $val2 = 3; $cond = '>';

$check = $val1.$cond.$val2;

echo eval('return $check;') ? 'true' : 'false';

У меня есть функция, которая с помощью полученных параметров генерирует динамические операторы if.

Все операторы создаются без ошибок.

Приведенный выше код является примером кода, используемого в указанной функции.

Проблема в том, что все операторы возвращают TRUE.

Я уверен, что я использую eval неправильно, но я не могу понять, как.

1 Ответ

0 голосов
/ 19 ноября 2018

Если вы используете одинарные кавычки, текст интерпретируется как есть, что означает, что вы оцениваете return $check. Вы хотите использовать двойные кавычки, что означает, что вы оцениваете return 0>3.

Так что используйте echo eval("return $check;") ? 'true' : 'false';.

...