StartsWith.php (911B)
1 <?php 2 3 /* 4 * This file is part of Twig. 5 * 6 * (c) 2013 Fabien Potencier 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 class Twig_Node_Expression_Binary_StartsWith extends Twig_Node_Expression_Binary 12 { 13 public function compile(Twig_Compiler $compiler) 14 { 15 $left = $compiler->getVarName(); 16 $right = $compiler->getVarName(); 17 $compiler 18 ->raw(sprintf('(is_string($%s = ', $left)) 19 ->subcompile($this->getNode('left')) 20 ->raw(sprintf(') && is_string($%s = ', $right)) 21 ->subcompile($this->getNode('right')) 22 ->raw(sprintf(') && (\'\' === $%2$s || 0 === strpos($%1$s, $%2$s)))', $left, $right)) 23 ; 24 } 25 26 public function operator(Twig_Compiler $compiler) 27 { 28 return $compiler->raw(''); 29 } 30 }