Оценить строку

У меня есть (true) или (false) в строковой переменной, например:

$chk="(true) or (false)";

Теперь я хотел бы оценить строку, если строка будет оценивать true или false, как в приведенном выше примере она должна возвращать false?

Например:

$chk1="(true) and (false)";

вернет ложь.

Описанный выше метод подразумевается в функции веб-приложения, где пользователь должен перейти на следующий уровень, проверив, очистил ли он другие уровни. У способов прояснения уровня есть комбинация логических фактов как выше.

0

Решение

Попробуйте исчерпывающий метод. Это самое простое.

$chk = "(false) or (false)";
preg_match('/\((true|false)\)\s(or|and)\s\((true|false)\)/i', $chk, $res);
if (empty($res)) die('Error string!');
if (strtolower($res[1]) == 'true')  $a = TRUE;
if (strtolower($res[1]) == 'false') $a = FALSE;
if (strtolower($res[3]) == 'true')  $b = TRUE;
if (strtolower($res[3]) == 'false') $b = FALSE;
if (strtolower($res[2]) == 'or')  var_dump($a or $b);
if (strtolower($res[2]) == 'and') var_dump($a and $b);

Улучшены некоторые.

1

Другие решения

Других решений пока нет …