aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/for/objects_countable.test
blob: 4a1ff6119088a6f399eb0fb100e48cd2ad2fb3ac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--TEST--
"for" tag iterates over iterable and countable objects
--TEMPLATE--
{% for item in items %}
  * {{ item }}
  * {{ loop.index }}/{{ loop.index0 }}
  * {{ loop.revindex }}/{{ loop.revindex0 }}
  * {{ loop.first }}/{{ loop.last }}/{{ loop.length }}

{% endfor %}

{% for key, value in items %}
  * {{ key }}/{{ value }}
{% endfor %}

{% for key in items|keys %}
  * {{ key }}
{% endfor %}
--DATA--
class ItemsIteratorCountable implements Iterator, Countable
{
  protected $values = array('foo' => 'bar', 'bar' => 'foo');
  public function current() { return current($this->values); }
  public function key() { return key($this->values); }
  public function next() { return next($this->values); }
  public function rewind() { return reset($this->values); }
  public function valid() { return false !== current($this->values); }
  public function count() { return count($this->values); }
}
return array('items' => new ItemsIteratorCountable())
--EXPECT--
  * bar
  * 1/0
  * 2/1
  * 1//2

  * foo
  * 2/1
  * 1/0
  * /1/2


  * foo/bar
  * bar/foo

  * foo
  * bar