我有一个变量$allrule = '(1 == 2) && (2 == 2)';
当我检查if($allrule)
时,它返回true,因为$allrule
被视为字符串。所以我想将$allrule
转换为if语句的条件。我们怎么做呢。
答案 0 :(得分:3)
此解决方案使用纯eval()的evil,但由于没有规定不这样做...
$allrule = '(1 == 2) && (2 == 2)';
$result = eval("return (".$allrule.");"); // $result will be false
扩展示例*:
$allrule = "(1433861812 > 1433694000) && (1433861812 > 1433771400) && (1433861812 > 1433944200)";
$result = eval("return (".$allrule.");");
if($result) {
echo "true";
} else {
echo "false"; // will echo "false"
}
*来自评论