php | Простой вопрос об условном утверждении - PullRequest
1 голос
/ 28 апреля 2011

Я новичок в 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 ]

2 голосов
/ 28 апреля 2011

Ну, это не совсем разбор, но вы можете оценить свое состояние по мере выполнения кода.

$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 не выполнится.

0 голосов
/ 28 апреля 2011

Я верю, что вы хотите

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

Обязательно проверьте случай ЛОЖЬ, если синтаксический анализ завершился неудачей.

...