} } $n = "<br />"; $context = new InterpreterContext(); $literal = new LiteralExpression('Четыре'); $literal->interpret($context); print $context->lookup($literal) . $n; $context = new InterpreterContext(); $myvar = new VariableExpression('input', 'Четыре'); $myvar->interpret($context); print $context->lookup($myvar) . $n; $newvar = new VariableExpression('input'); $newvar->interpret($context); print $context->lookup($myvar) . $n; $myvar->setValue('Пять'); $myvar->interpret($context); print $context->lookup($myvar) . $n; print $context->lookup($newvar) . $n; $context = new InterpreterContext(); $input = new VariableExpression('input'); $statement = new BooleanOrExpression(new EqualsExpression($input, new LiteralExpression('Четыре')), new EqualsExpression($input, new LiteralExpression('4'))); foreach (['Четыре', '4', '52'] as $val) { $input->setValue($val); print "{$val} : "; $statement->interpret($context); if ($context->lookup($statement)) { print "соответствует {$n}"; } else { print "не соответствует {$n}"; } }