我有一套涉及比较运算符的规则。我想根据规则中存储的比较运算符的值执行一些任务。我正在按照以下方式进行操作,但它不起作用。检查以下代码
if($benRules[$i]['amountCriteria']=='Greater than')
$comparison='>';
if($benRules[$i]['amountCriteria']=='Equal to')
$comparison='==';
if($benRules[$i]['amountCriteria']=='Less than')
$comparison='<';
if($value['1'].$comparison.$value[$i]['2']){
debug('Condtion checked');
}
问题是它总是检查条件是否为真。它采用 IF 条件内的整个参数为字符串,因此只要该字符串不为空,就会执行括号内的代码。
请在这里帮助我。
您的问题是您尝试使用字符串作为代码而不对其进行评估。您可以使用创建函数() http://php.net/manual/en/function.create-function.php像这样:
$sCondition = '<';
$mData0 = 4;
$mData1 = 5.5;
$fnCallback=create_function('$x, $y', 'return $x'.$sCondition.'$y;');
var_dump($fnCallback($mData0, $mData1)); // true
或者,有一个eval() http://php.net/manual/en/function.eval.php函数,但似乎直接返回在您的情况下会更有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)