php |关于条件陈述的简单问题

时间:2011-04-28 00:53:23

标签: php conditional

我是php的新手,我希望有一个像这样的条件语句:

if ($foo != 'Any') { $condition .= '$this_foo == $foo &&';}
if ($bar != 'Any') { $condition .= '$this_bar == $bar &&';}
if ($txt != 'Any') { $condition .= '$this_txt == $txt &&';}
$condition .= '$num1 > 0 && $num2 < 1000';

if (...[php would parse the $condition variable])
{
  someoperations
}

if语句解析变量$ condition的正确语法是什么?因此条件语句取决于其他变量并防止长嵌套条件语句。

提前致谢!

2 个答案:

答案 0 :(得分:2)

嗯,它不是完全解析,但你可以在代码执行时评估你的条件。

$condition = true;
if ($foo != 'Any') { $condition = $condition && ($this_foo == $foo);}
if ($bar != 'Any') { $condition = $condition && ($this_bar == $bar);}
if ($txt != 'Any') { $condition = $condition && ($this_txt == $txt);}
$condition = $condition && ($num1 > 0 && $num2 < 1000);

if ($condition)
{
  someoperations
}

因此,我们假设$foo != 'Any'true,这将导致

$condition = true && ($this_foo == $foo) && ($num1 > 0 && $num2 < 1000);

让我们假装$this_foo == $foo$num1 == 45$num2 == 2300

$condition = true && true && (true && false);
$condition = false;

你的if不会执行。

答案 1 :(得分:0)

我相信你想要的是

if (eval("return " . $condition)) {...}

如果解析失败,请确保检查FALSE案例。