Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. IfNode.php

function IfNode::compile

Overrides Node::compile

File

vendor/twig/twig/src/Node/IfNode.php, line 36

Class

IfNode
Represents an if node.

Namespace

Twig\Node

Code

public function compile(Compiler $compiler) : void {
    $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((string) $i))
            ->raw(") {\n")
            ->indent();
        // The node might not exists if the content is empty
        if ($this->getNode('tests')
            ->hasNode((string) ($i + 1))) {
            $compiler->subcompile($this->getNode('tests')
                ->getNode((string) ($i + 1)));
        }
    }
    if ($this->hasNode('else')) {
        $compiler->outdent()
            ->write("} else {\n")
            ->indent()
            ->subcompile($this->getNode('else'));
    }
    $compiler->outdent()
        ->write("}\n");
}
RSS feed
Powered by Drupal