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\NodeView 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<string, NameDeprecation> | ||
Node::$attributes | protected | property | |||
Node::$lineno | protected | property | |||
Node::$nodeNameDeprecations | private | property | @var array<string, NameDeprecation> | ||
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 |