4 * This file is part of Twig.
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
11 class Twig_Node_Expression_Binary_StartsWith extends Twig_Node_Expression_Binary
13 public function compile(Twig_Compiler $compiler)
15 $left = $compiler->getVarName();
16 $right = $compiler->getVarName();
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))
26 public function operator(Twig_Compiler $compiler)
28 return $compiler->raw('');