我的条件是由代码生成的字符串,如下所示:
$mycondition = "(strpos(strtolower($foo1), strtolower($bar)) !== false) AND (strpos(strtolower($foo1), strtolower($bar2)) !== false) // AND ((strpos(strtolower($foo2), strtolower($bar1)) !== false)) AND..."; ad infinitum
我的if语句应该是:
if ($mycondition) then...
我可以像这样使用eval():
if (eval("return $mycondition;")) then...
但我理解eval()不推荐练习。在搜索论坛时,我看到许多声音反对使用eval(),但没有多少替代品。
有什么替代方案?如何将生成的字符串放入if条件?
答案 0 :(得分:1)
一个解决方法是在生成条件的地方,只有你可以进行比较并在结尾生成一个布尔值,稍后你可以在代码中。