Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/ExpressionLanguage/Node/ConditionalNode.php
Строк: 49
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentExpressionLanguageNode;

use 
SymfonyComponentExpressionLanguageCompiler;

class 
ConditionalNode extends Node
{
    public function 
__construct(Node $expr1Node $expr2Node $expr3)
    {
        
parent::__construct(
            array(
'expr1' => $expr1'expr2' => $expr2'expr3' => $expr3)
        );
    }

    public function 
compile(Compiler $compiler)
    {
        
$compiler
            
->raw('((')
            ->
compile($this->nodes['expr1'])
            ->
raw(') ? (')
            ->
compile($this->nodes['expr2'])
            ->
raw(') : (')
            ->
compile($this->nodes['expr3'])
            ->
raw('))')
        ;
    }

    public function 
evaluate($functions$values)
    {
        if (
$this->nodes['expr1']->evaluate($functions$values)) {
            return 
$this->nodes['expr2']->evaluate($functions$values);
        }

        return 
$this->nodes['expr3']->evaluate($functions$values);
    }
}
Онлайн: 2
Реклама