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

Breadcrumb

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

class IfNode

Represents an if node.

@author Fabien Potencier <fabien@symfony.com>

Hierarchy

  • class \Twig\Node\Node implements \Twig\Node\Countable, \Twig\Node\IteratorAggregate
    • class \Twig\Node\IfNode extends \Twig\Node\Node

Expanded class hierarchy of IfNode

1 file declares its use of IfNode
IfTokenParser.php in vendor/twig/twig/src/TokenParser/IfTokenParser.php

File

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

Namespace

Twig\Node
View source
class IfNode extends Node {
    public function __construct(Node $tests, ?Node $else, int $lineno) {
        $nodes = [
            'tests' => $tests,
        ];
        if (null !== $else) {
            $nodes['else'] = $else;
        }
        parent::__construct($nodes, [], $lineno);
    }
    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");
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
IfNode::compile public function Overrides Node::compile
IfNode::__construct public function Overrides Node::__construct
Node::$attributeNameDeprecations private property @var array&lt;string, NameDeprecation&gt;
Node::$attributes protected property
Node::$lineno protected property
Node::$nodeNameDeprecations private property @var array&lt;string, NameDeprecation&gt;
Node::$nodes protected property
Node::$sourceContext private property
Node::$tag protected property
Node::count public function
Node::deprecateAttribute public function
Node::deprecateNode public function
Node::getAttribute public function
Node::getIterator public function
Node::getNode public function
Node::getNodeTag public function
Node::getSourceContext public function
Node::getTemplateLine public function
Node::getTemplateName public function
Node::hasAttribute public function
Node::hasNode public function
Node::removeAttribute public function
Node::removeNode public function
Node::setAttribute public function
Node::setNode public function 1
Node::setNodeTag public function @internal
Node::setSourceContext public function
Node::__toString public function
RSS feed
Powered by Drupal