function 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:

Boolean $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 drupal/core/vendor/twig/twig/test/Twig/Tests/Extension/CoreTest.php
1 string reference to 'twig_reverse_filter'
Twig_Extension_Core::getFilters in drupal/core/vendor/twig/twig/lib/Twig/Extension/Core.php
Returns a list of filters to add to the existing list.

File

drupal/core/vendor/twig/twig/lib/Twig/Extension/Core.php, line 675

Code

function twig_reverse_filter(Twig_Environment $env, $item, $preserveKeys = false) {
  if (is_object($item) && $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);
}