You are here

function twig_reverse_filter in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/twig/twig/lib/Twig/Extension/Core.php \twig_reverse_filter()

Reverses a variable.

Parameters

Twig_Environment $env A Twig_Environment instance:

array|Traversable|string $item An array, a Traversable instance, or a string:

bool $preserveKeys Whether to preserve key or not:

Return value

mixed The reversed input

1 call to twig_reverse_filter()
Twig_Tests_Extension_CoreTest::testReverseFilterOnNonUTF8String in vendor/twig/twig/test/Twig/Tests/Extension/CoreTest.php
1 string reference to 'twig_reverse_filter'
Twig_Extension_Core::getFilters in vendor/twig/twig/lib/Twig/Extension/Core.php

File

vendor/twig/twig/lib/Twig/Extension/Core.php, line 906

Code

function twig_reverse_filter(Twig_Environment $env, $item, $preserveKeys = false) {
  if ($item instanceof Traversable) {
    return array_reverse(iterator_to_array($item), $preserveKeys);
  }
  if (is_array($item)) {
    return array_reverse($item, $preserveKeys);
  }
  if (null !== ($charset = $env
    ->getCharset())) {
    $string = (string) $item;
    if ('UTF-8' != $charset) {
      $item = twig_convert_encoding($string, 'UTF-8', $charset);
    }
    preg_match_all('/./us', $item, $matches);
    $string = implode('', array_reverse($matches[0]));
    if ('UTF-8' != $charset) {
      $string = twig_convert_encoding($string, $charset, 'UTF-8');
    }
    return $string;
  }
  return strrev((string) $item);
}