1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\ExpressionLanguage\Node; 13 14use Symfony\Component\ExpressionLanguage\Compiler; 15 16/** 17 * @author Fabien Potencier <fabien@symfony.com> 18 * 19 * @internal 20 */ 21class NameNode extends Node 22{ 23 public function __construct(string $name) 24 { 25 parent::__construct( 26 [], 27 ['name' => $name] 28 ); 29 } 30 31 public function compile(Compiler $compiler) 32 { 33 $compiler->raw('$'.$this->attributes['name']); 34 } 35 36 public function evaluate($functions, $values) 37 { 38 return $values[$this->attributes['name']]; 39 } 40 41 public function toArray() 42 { 43 return [$this->attributes['name']]; 44 } 45} 46