fixed the "length" filter for numbers
authorFabien Potencier <fabien.potencier@gmail.com>
Sat, 22 Jan 2011 08:12:57 +0000 (09:12 +0100)
committerFabien Potencier <fabien.potencier@gmail.com>
Sat, 22 Jan 2011 08:12:57 +0000 (09:12 +0100)
CHANGELOG
lib/Twig/Extension/Core.php
test/Twig/Tests/Fixtures/filters/length.test

index b0af44e..588115a 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,7 @@
 
 Changes:
 
+ * fixed the "length" filter for numbers
  * removed coupling between Twig_Node and Twig_Template
  * fixed the ternary operator precedence rule
 
index e63e6a7..01962b0 100644 (file)
@@ -388,7 +388,7 @@ function _twig_escape_js_callback($matches)
 if (function_exists('mb_get_info')) {
     function twig_length_filter(Twig_Environment $env, $thing)
     {
-        return is_string($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing);
+        return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing);
     }
 
     function twig_upper_filter(Twig_Environment $env, $string)
@@ -433,7 +433,7 @@ else
 {
     function twig_length_filter(Twig_Environment $env, $thing)
     {
-        return is_string($thing) ? strlen($thing) : count($thing);
+        return is_scalar($thing) ? strlen($thing) : count($thing);
     }
 
     function twig_title_string_filter(Twig_Environment $env, $string)
index b5ef879..0196227 100644 (file)
@@ -3,8 +3,10 @@
 --TEMPLATE--
 {{ array|length }}
 {{ string|length }}
+{{ number|length }}
 --DATA--
-return array('array' => array(1, 4), 'string' => 'foo')
+return array('array' => array(1, 4), 'string' => 'foo', 'number' => 1000)
 --EXPECT--
 2
 3
+4