繁体   English   中英

如何生成动态IF语句

[英]How to generate dynamic IF statement

我的数组看起来像这样。

$setLogic = array(array("Conj"=>null,"Topic"=>True),array("Conj"=>"Or","Topic"=>True),array("Conj"=>"Or","Topic"=>false),

我尝试用这种方式动态地构建一个 IF 语句。

foreach($setLogic as $value){
   echo $value['Conj'].(int)$value['Topic'];

    if($value['Conj'].(int)$value['Topic'] == true){
         $getBoolean[] = true;
    }
    else{
         $getBoolean[] = false;
    }

我只需要这样的东西。

(true or true or false)并返回真或假

我用我自己找到了答案。 它看起来像这样。

$abc= '';
foreach($setLogic2 as $key => $value){
    $abc.= $value['Conj'].' '.(int)$value['Topic'].' ';
}

//$abc = "0 And 1 And 1";

if(eval("return $abc;") == true) {
    echo 'true boolean';
}
else if(eval("return $abc;") == false){
    echo 'false boolean';
}
else{
    echo 'none';
}

好的,我会重新制定我的答案....

您想动态评估一个数组,该数组包含每个子数组 * 一个动词:“and”或“or” * 一个值“true 或”false”

更快和最脏的方法是使用 eval()。 * 将条件构建为字符串(将“and”替换为“&&”,将“or”替换为“||”

'true || true && false'
  • 然后把结果放在一个变量中并评估
eval('$result = (true || true && false);');
var_dump($result);

这肯定有效...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM