You are here

public function Twig_Node_If::compile in Translation template extractor 7.3

Same name and namespace in other branches
  1. 6.3 vendor/Twig/Node/If.php \Twig_Node_If::compile()

Compiles the node to PHP.

Parameters

Twig_Compiler $compiler A Twig_Compiler instance:

Overrides Twig_Node::compile

File

vendor/Twig/Node/If.php, line 25

Class

Twig_Node_If
Represents an if node.

Code

public function compile(Twig_Compiler $compiler) {
  $compiler
    ->addDebugInfo($this);
  for ($i = 0, $count = count($this
    ->getNode('tests')); $i < $count; $i += 2) {
    if ($i > 0) {
      $compiler
        ->outdent()
        ->write('} elseif (');
    }
    else {
      $compiler
        ->write('if (');
    }
    $compiler
      ->subcompile($this
      ->getNode('tests')
      ->getNode($i))
      ->raw(") {\n")
      ->indent()
      ->subcompile($this
      ->getNode('tests')
      ->getNode($i + 1));
  }
  if ($this
    ->hasNode('else') && null !== $this
    ->getNode('else')) {
    $compiler
      ->outdent()
      ->write("} else {\n")
      ->indent()
      ->subcompile($this
      ->getNode('else'));
  }
  $compiler
    ->outdent()
    ->write("}\n");
}