You are here

public function Twig_Node_Expression_Binary_StartsWith::compile in Translation template extractor 6.3

Same name and namespace in other branches
  1. 7.3 vendor/Twig/Node/Expression/Binary/StartsWith.php \Twig_Node_Expression_Binary_StartsWith::compile()

Compiles the node to PHP.

Parameters

Twig_Compiler $compiler A Twig_Compiler instance:

Overrides Twig_Node_Expression_Binary::compile

File

vendor/Twig/Node/Expression/Binary/StartsWith.php, line 13

Class

Twig_Node_Expression_Binary_StartsWith

Code

public function compile(Twig_Compiler $compiler) {
  $left = $compiler
    ->getVarName();
  $right = $compiler
    ->getVarName();
  $compiler
    ->raw(sprintf('(is_string($%s = ', $left))
    ->subcompile($this
    ->getNode('left'))
    ->raw(sprintf(') && is_string($%s = ', $right))
    ->subcompile($this
    ->getNode('right'))
    ->raw(sprintf(') && (\'\' === $%2$s || 0 === strpos($%1$s, $%2$s)))', $left, $right));
}