我的数组看起来像这样。
$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)
并返回true或false
答案 0 :(得分:-1)
好的,我会重新制定答案。...
您要动态评估一个包含每个子数组的数组 *动词:“和”或“或” *值为“ true或” false“
更快,最脏的方法是使用eval()。 *将您的条件构建为字符串(用“ &&”替换“ and”,用“ ||”替换“ or”
'true || true && false'
eval('$result = (true || true && false);');
var_dump($result);
这可以肯定...
答案 1 :(得分:-1)
我自己找到了答案。 看起来像这样。
$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';
}