From be446738b848b3539fb754d008a03b2c02d6b26c Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Sun, 15 Jan 2017 22:32:06 +0900 Subject: [PATCH] [Compiler] Expression\IssetOp - pretty simple, only return BOOL and compile variables inside isset, refs #298 --- src/Compiler/Expression/IssetOp.php | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/Compiler/Expression/IssetOp.php b/src/Compiler/Expression/IssetOp.php index 435eedbb..1af8ba31 100644 --- a/src/Compiler/Expression/IssetOp.php +++ b/src/Compiler/Expression/IssetOp.php @@ -21,24 +21,14 @@ class IssetOp extends AbstractExpressionCompiler */ protected function compile($expr, Context $context) { - $result = false; + $expressionCompiler = $context->getExpressionCompiler(); foreach ($expr->vars as $var) { - if ($var instanceof VariableNode) { - $variable = $context->getSymbol((string)$var->name); - - if ($variable) { - $variable->incUse(); - - if ($variable->getValue() !== null) { - $result = true; - continue; // this variable is set, continue - } - } - return CompiledExpression::fromZvalValue(false); // one of the vars is not set - } + $expressionCompiler->compile($var); } - return CompiledExpression::fromZvalValue($result); // if all are set return true, else false + return new CompiledExpression( + CompiledExpression::BOOLEAN + ); } }