You are here

public function Twig_Node_Expression_Binary_EndsWith::compile in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php \Twig_Node_Expression_Binary_EndsWith::compile()

Compiles the node to PHP.

Parameters

Twig_Compiler $compiler A Twig_Compiler instance:

Overrides Twig_Node_Expression_Binary::compile

File

vendor/twig/twig/lib/Twig/Node/Expression/Binary/EndsWith.php, line 13

Class

Twig_Node_Expression_Binary_EndsWith

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 || $%2$s === substr($%1$s, -strlen($%2$s))))', $left, $right));
}