$value, 'cases' => $cases, 'default' => $default), array(), $lineno, $tag); } /** * Compiles the node to PHP. * * @param \Twig_Compiler A Twig_Compiler instance */ public function compile(\Twig_Compiler $compiler) { $compiler ->addDebugInfo($this) ->write('switch (') ->subcompile($this->getNode('value')) ->raw(") {\n") ->indent(); foreach ($this->getNode('cases') as $case) { if (!$case->hasNode('body')) { continue; } foreach ($case->getNode('values') as $value) { $compiler ->write('case ') ->subcompile($value) ->raw(":\n"); } $compiler ->write("{\n") ->indent() ->subcompile($case->getNode('body')) ->write("break;\n") ->outdent() ->write("}\n"); } if ($this->hasNode('default') && $this->getNode('default') !== null) { $compiler ->write("default:\n") ->write("{\n") ->indent() ->subcompile($this->getNode('default')) ->outdent() ->write("}\n"); } $compiler ->outdent() ->write("}\n"); } }