reference/spl/functions/iterator-count.xml
70ac605e66b5ce0c03a345df92297f3e03f088ca
...
...
@@ -10,10 +10,12 @@
10
10
&reftitle.description;
11
11
<methodsynopsis>
12
12
<type>int</type><methodname>iterator_count</methodname>
13
-
<methodparam><type>Traversable</type><parameter>iterator</parameter></methodparam>
13
+
<methodparam><type class="union"><type>Traversable</type><type>array</type></type><parameter>iterator</parameter></methodparam>
14
14
</methodsynopsis>
15
15
<para>
16
16
Count the elements in an iterator.
17
+
<function>iterator_count</function> is not guaranteed to retain the current
18
+
position of the <parameter>iterator</parameter>.
17
19
</para>
18
20
</refsect1>
19
21

...
...
@@ -40,6 +42,30 @@
40
42
</para>
41
43
</refsect1>
42
44

45
+
<refsect1 role="changelog">
46
+
&reftitle.changelog;
47
+
<informaltable>
48
+
<tgroup cols="2">
49
+
<thead>
50
+
<row>
51
+
<entry>&Version;</entry>
52
+
<entry>&Description;</entry>
53
+
</row>
54
+
</thead>
55
+
<tbody>
56
+
<row>
57
+
<entry>8.2.0</entry>
58
+
<entry>
59
+
The type of <parameter>iterator</parameter> has been widened from
60
+
<type>Traversable</type> to
61
+
<type class="union"><type>Traversable</type><type>array</type></type>.
62
+
</entry>
63
+
</row>
64
+
</tbody>
65
+
</tgroup>
66
+
</informaltable>
67
+
</refsect1>
68
+

43
69
<refsect1 role="examples">
44
70
&reftitle.examples;
45
71
<para>
...
...
@@ -60,11 +86,49 @@ int(4)
60
86
]]>
61
87
</screen>
62
88
</example>
89
+
<example>
90
+
<title><function>iterator_count</function> modifies position</title>
91
+
<programlisting role="php">
92
+
<![CDATA[
93
+
<?php
94
+
$iterator = new ArrayIterator(['one', 'two', 'three']);
95
+
var_dump($iterator->current());
96
+
var_dump(iterator_count($iterator));
97
+
var_dump($iterator->current());
98
+
?>
99
+
]]>
100
+
</programlisting>
101
+
&example.outputs;
102
+
<screen>
103
+
<![CDATA[
104
+
string(3) "one"
105
+
int(3)
106
+
NULL
107
+
]]>
108
+
</screen>
109
+
</example>
110
+
<example>
111
+
<title><function>iterator_count</function> in &foreach; loops</title>
112
+
<programlisting role="php">
113
+
<![CDATA[
114
+
<?php
115
+
$iterator = new ArrayIterator(['one', 'two', 'three']);
116
+
foreach ($iterator as $key => $value) {
117
+
echo "$key: $value (", iterator_count($iterator), ")\n";
118
+
}?>
119
+
]]>
120
+
</programlisting>
121
+
&example.outputs;
122
+
<screen>
123
+
<![CDATA[
124
+
0: one (3)
125
+
]]>
126
+
</screen>
127
+
</example>
63
128
</para>
64
129
</refsect1>
65
130

66
131
</refentry>
67
-

68
132
<!-- Keep this comment at the end of the file
69
133
Local variables:
70
134
mode: sgml
71
135