Revert "bug #1470 Fixed "in" operator (hason)"
authorFabien Potencier <fabien.potencier@gmail.com>
Thu, 16 Oct 2014 18:28:23 +0000 (20:28 +0200)
committerFabien Potencier <fabien.potencier@gmail.com>
Thu, 16 Oct 2014 18:28:23 +0000 (20:28 +0200)
This reverts commit 5b172b5175e5985d144cc59985627d8820d32260, reversing
changes made to 0d0cdba3bb239efa20a0bd0c4a890a41d529d672.

lib/Twig/Extension/Core.php
test/Twig/Tests/Fixtures/tests/in.test

index 50af07b..e71d741 100644 (file)
@@ -930,15 +930,15 @@ function twig_sort_filter($array)
 function twig_in_filter($value, $compare)
 {
     if (is_array($compare)) {
-        return in_array($value, $compare, true);
+        return in_array($value, $compare, is_object($value));
     } elseif (is_string($compare)) {
-        if (!is_string($value)) {
-            return false;
+        if (!strlen($value)) {
+            return empty($compare);
         }
 
-        return '' === $value || false !== strpos($compare, $value);
+        return false !== strpos($compare, (string) $value);
     } elseif ($compare instanceof Traversable) {
-        return in_array($value, iterator_to_array($compare, false), true);
+        return in_array($value, iterator_to_array($compare, false), is_object($value));
     }
 
     return false;
index 73445f8..45c72fd 100644 (file)
@@ -33,23 +33,8 @@ TRUE
 {% if '0' in '0' %}
 TRUE
 {% endif %}
-{{ false in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ true in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ '0' in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ '' in [0, 1] ? 'TRUE' : 'FALSE' }}
-{{ 0 in ['', 1] ? 'TRUE' : 'FALSE' }}
-{{ '' in 'foo' ? 'TRUE' : 'FALSE' }}
-{{ 0 in 'foo' ? 'TRUE' : 'FALSE' }}
-{{ false in 'foo' ? 'TRUE' : 'FALSE' }}
-{{ true in '100' ? 'TRUE' : 'FALSE' }}
-{{ [] in 'Array' ? 'TRUE' : 'FALSE' }}
-{{ [] in [true, false] ? 'TRUE' : 'FALSE' }}
-{{ [] in [true, ''] ? 'TRUE' : 'FALSE' }}
-{{ [] in [true, []] ? 'TRUE' : 'FALSE' }}
-{{ dir_object in 'foo'~dir_name ? 'TRUE' : 'FALSE' }}
-{{ 5 in 125 ? 'TRUE' : 'FALSE' }}
 --DATA--
-return array('bar' => 'bar', 'foo' => array('bar' => 'bar'), 'dir_name' => dirname(__FILE__), 'dir_object' => new SplFileInfo(dirname(__FILE__)))
+return array('bar' => 'bar', 'foo' => array('bar' => 'bar'))
 --EXPECT--
 TRUE
 TRUE
@@ -60,18 +45,4 @@ TRUE
 TRUE
 TRUE
 TRUE
-FALSE
-FALSE
-FALSE
-FALSE
-FALSE
 TRUE
-FALSE
-FALSE
-FALSE
-FALSE
-FALSE
-FALSE
-TRUE
-FALSE
-FALSE