这是我的代码:
$val1 = 0; $val2 = 3; $cond = '>';
$check = $val1.$cond.$val2;
echo eval('return $check;') ? 'true' : 'false';
我有一个函数,该函数使用接收到的参数来生成动态的if语句。
所有语句均生成无误。
上面的代码是该函数中使用的代码的示例。
问题在于所有语句都返回TRUE。
我确定我以错误的方式使用了eval,但是我不知道怎么做。
答案 0 :(得分:1)
如果使用单引号,则文本将按原样解释,这意味着您正在评估return $check
。您想使用双引号,这意味着您正在评估return 0>3
。
因此请使用echo eval("return $check;") ? 'true' : 'false';
。