我的条件是由代码生成为一个字符串,如下所示:
$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 条件中?