language.oop5.iterations.html
来自「php的帮助文档,涉及到PHP的案例和基本语法,以及实际应用内容」· HTML 代码 · 共 157 行 · 第 1/2 页
HTML
157 行
current: 2key: 11: 2next: 3current: 3valid: 1current: 3key: 22: 3next:current:valid:</pre></div> </pre></div> </div> <p class="para"> You can also define your class so that it doesn't have to define all the <var class="varname">Iterator</var> functions by simply implementing the PHP 5 <var class="varname">IteratorAggregate</var> interface. </p> <div class="example"> <p><b>Example #3 Object Iteration implementing IteratorAggregate</b></p> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">MyCollection </span><span style="color: #007700">implements </span><span style="color: #0000BB">IteratorAggregate<br /></span><span style="color: #007700">{<br /> private </span><span style="color: #0000BB">$items </span><span style="color: #007700">= array();<br /> private </span><span style="color: #0000BB">$count </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /><br /> </span><span style="color: #FF8000">// Required definition of interface IteratorAggregate<br /> </span><span style="color: #007700">public function </span><span style="color: #0000BB">getIterator</span><span style="color: #007700">() {<br /> return new </span><span style="color: #0000BB">MyIterator</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">items</span><span style="color: #007700">);<br /> }<br /><br /> public function </span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">items</span><span style="color: #007700">[</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">count</span><span style="color: #007700">++] = </span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br /> }<br />}<br /><br /></span><span style="color: #0000BB">$coll </span><span style="color: #007700">= new </span><span style="color: #0000BB">MyCollection</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$coll</span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">'value 1'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$coll</span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">'value 2'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$coll</span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #DD0000">'value 3'</span><span style="color: #007700">);<br /><br />foreach (</span><span style="color: #0000BB">$coll </span><span style="color: #007700">as </span><span style="color: #0000BB">$key </span><span style="color: #007700">=> </span><span style="color: #0000BB">$val</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">"key/value: [$key -> $val]\n\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents"><pre><div class="cdata"><pre>rewindingcurrent: value 1valid: 1current: value 1key: 0key/value: [0 -> value 1]next: value 2current: value 2valid: 1current: value 2key: 1key/value: [1 -> value 2]next: value 3current: value 3valid: 1current: value 3key: 2key/value: [2 -> value 3]next:current:valid:</pre></div> </pre></div> </div> <blockquote><p><b class="note">Note</b>: For more examples of iterators, see the <a href="ref.spl.html" class="link">SPL Extension</a>. <br /> </p></blockquote> </div><hr /><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="language.oop5.overloading.html">Overloading</a></div> <div class="next" style="text-align: right; float: right;"><a href="language.oop5.patterns.html">Patterns</a></div> <div class="up"><a href="language.oop5.html">Classes and Objects (PHP 5)</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?