Вход Регистрация
Файл: upload/core/vendor/twig/twig/src/Node/Expression/Ternary/ConditionalTernary.php
Строк: 53
<?php

/*
 * This file is part of Twig.
 *
 * (c) Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace TwigNodeExpressionTernary;

use 
TwigCompiler;
use 
TwigNodeExpressionAbstractExpression;
use 
TwigNodeExpressionOperatorEscapeInterface;
use 
TwigNodeExpressionReturnPrimitiveTypeInterface;
use 
TwigNodeExpressionTestTrueTest;
use 
TwigTwigTest;

final class 
ConditionalTernary extends AbstractExpression implements OperatorEscapeInterface
{
    public function 
__construct(AbstractExpression $testAbstractExpression $leftAbstractExpression $rightint $lineno)
    {
        if (!
$test instanceof ReturnPrimitiveTypeInterface) {
            
$test = new TrueTest($test, new TwigTest('true'), null$test->getTemplateLine());
        }

        
parent::__construct(['test' => $test'left' => $left'right' => $right], [], $lineno);
    }

    public function 
compile(Compiler $compiler): void
    
{
        
$compiler
            
->raw('((')
            ->
subcompile($this->getNode('test'))
            ->
raw(') ? (')
            ->
subcompile($this->getNode('left'))
            ->
raw(') : (')
            ->
subcompile($this->getNode('right'))
            ->
raw('))')
        ;
    }

    public function 
getOperandNamesToEscape(): array
    {
        return [
'left''right'];
    }
}
Онлайн: 1
Реклама