Это мой код:
$val1 = 0; $val2 = 3; $cond = '>';
$check = $val1.$cond.$val2;
echo eval('return $check;') ? 'true' : 'false';
У меня есть функция, которая, используя полученные параметры, генерирует динамические операторы if.
Все отчеты сформированы без ошибок.
Приведенный выше код является примером кода, используемого в указанной функции.
Проблема в том, что все операторы возвращают ИСТИНА.
Я уверен, что неправильно использую eval, но не могу понять, как это сделать.
Я понимаю. Я должен использовать двойные кавычки. Спасибо.
Боковой узел: if (true) then true else false? как насчет $boolean = eval("return $check;");






Если вы используете одинарные кавычки, текст интерпретируется как есть, что означает, что вы оцениваете return $check. Вы хотите использовать двойные кавычки, что означает, что вы оцениваете return 0>3.
Так что используйте echo eval("return $check;") ? 'true' : 'false';.
Ваша переменная не интерпретируется. Используйте eval ("return $ ckeck").